Plugin Directory

Changeset 3372523


Ignore:
Timestamp:
10/03/2025 05:23:52 PM (5 months ago)
Author:
webwizardsdev
Message:

4.9.30 commit

Location:
b2bking-wholesale-for-woocommerce/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • b2bking-wholesale-for-woocommerce/trunk/b2bking.php

    r3367328 r3372523  
    55 * Plugin URI:        https://codecanyon.net/item/b2bking-the-ultimate-woocommerce-b2b-plugin/26689576
    66 * Description:       B2BKing is the complete solution for turning WooCommerce into an enterprise-level B2B e-commerce platform. Core Plugin.
    7  * Version:           4.9.20
     7 * Version:           4.9.30
    88 * Author:            WebWizards
    99 * Author URI:        webwizards.dev
     
    1111 * Domain Path:       /languages
    1212 * WC requires at least: 5.0.0
    13  * WC tested up to: 10.2.1
     13 * WC tested up to: 10.2.2
    1414 */
    1515
     
    2121define( 'B2BKINGCORE_DIR', plugin_dir_path( __FILE__ ) );
    2222if ( ! defined( 'B2BKINGCORE_VERSION' ) ) {
    23     define( 'B2BKINGCORE_VERSION', 'v4.9.20');
     23    define( 'B2BKINGCORE_VERSION', 'v4.9.30');
    2424}
    2525
  • b2bking-wholesale-for-woocommerce/trunk/includes/class-b2bking.php

    r3137054 r3372523  
    103103            });
    104104
    105             // Approve and Reject users
    106             add_action( 'wp_ajax_b2bkingapproveuser', array($this, 'b2bkingapproveuser') );
    107             add_action( 'wp_ajax_nopriv_b2bkingapproveuser', array($this, 'b2bkingapproveuser') );
    108             add_action( 'wp_ajax_b2bkingrejectuser', array($this, 'b2bkingrejectuser') );
     105            // Approve and Reject users
     106            add_action( 'wp_ajax_b2bkingapproveuser', array($this, 'b2bkingapproveuser') );
     107            add_action( 'wp_ajax_b2bkingrejectuser', array($this, 'b2bkingrejectuser') );
    109108       
    110109            // Dismiss "activate woocommerce" admin notice permanently
     
    129128            add_action( 'wp_ajax_b2bking_dismiss_review_admin_notice_temporary', array( $this, 'b2bking_dismiss_review_admin_notice_temporary' ) );
    130129
    131             // Save Special group settings (b2c and guests) in groups
    132             add_action( 'wp_ajax_nopriv_b2bking_b2c_special_group_save_settings', array($this, 'b2bking_b2c_special_group_save_settings') );
    133             add_action( 'wp_ajax_b2bking_b2c_special_group_save_settings', array($this, 'b2bking_b2c_special_group_save_settings') );
    134             add_action( 'wp_ajax_nopriv_b2bking_logged_out_special_group_save_settings', array($this, 'b2bking_logged_out_special_group_save_settings') );
    135             add_action( 'wp_ajax_b2bking_logged_out_special_group_save_settings', array($this, 'b2bking_logged_out_special_group_save_settings') );
    136            
    137             // Backend Customers Panel
    138             add_action( 'wp_ajax_nopriv_b2bking_admin_customers_ajax', array($this, 'b2bking_admin_customers_ajax') );
    139             add_action( 'wp_ajax_b2bking_admin_customers_ajax', array($this, 'b2bking_admin_customers_ajax') );
    140 
    141             // Backend Update User Data
    142             add_action( 'wp_ajax_nopriv_b2bkingupdateuserdata', array($this, 'b2bkingupdateuserdata') );
    143             add_action( 'wp_ajax_b2bkingupdateuserdata', array($this, 'b2bkingupdateuserdata') );
    144 
    145             // Get page content function
     130            // Save Special group settings (b2c and guests) in groups
     131            add_action( 'wp_ajax_b2bking_b2c_special_group_save_settings', array($this, 'b2bking_b2c_special_group_save_settings') );
     132            add_action( 'wp_ajax_b2bking_logged_out_special_group_save_settings', array($this, 'b2bking_logged_out_special_group_save_settings') );
     133               
     134            // Backend Customers Panel
     135            add_action( 'wp_ajax_b2bking_admin_customers_ajax', array($this, 'b2bking_admin_customers_ajax') );
     136
     137            // Backend Update User Data
     138            add_action( 'wp_ajax_b2bkingupdateuserdata', array($this, 'b2bkingupdateuserdata') );
     139
     140            // Get page content function
    146141            add_action( 'wp_ajax_b2bking_get_page_content', array($this, 'b2bking_get_page_content') );
    147             add_action( 'wp_ajax_nopriv_b2bking_get_page_content', array($this, 'b2bking_get_page_content') );
    148 
    149             // refresh dashboard data
    150             add_action( 'wp_ajax_nopriv_b2bking_refresh_dashboard_data', array($this, 'b2bking_refresh_dashboard_data') );
    151             add_action( 'wp_ajax_b2bking_refresh_dashboard_data', array($this, 'b2bking_refresh_dashboard_data') );
    152 
    153             // Reports get data
    154             add_action( 'wp_ajax_nopriv_b2bking_reports_get_data', array($this, 'b2bking_reports_get_data') );
    155             add_action( 'wp_ajax_b2bking_reports_get_data', array($this, 'b2bking_reports_get_data') );
    156 
    157 
    158             add_action( 'wp_ajax_nopriv_b2bkingchangefield', array($this, 'b2bkingchangefield') );
    159             add_action( 'wp_ajax_b2bkingchangefield', array($this, 'b2bkingchangefield') );
    160 
    161             add_action( 'wp_ajax_nopriv_b2bking_clear_rules_caches', array($this, 'b2bking_clear_rules_caches') );
    162             add_action( 'wp_ajax_b2bking_clear_rules_caches', array($this, 'b2bking_clear_rules_caches') );
    163             // required
    164             add_action( 'wp_ajax_nopriv_b2bkingchangefieldrequired', array($this, 'b2bkingchangefieldrequired') );
    165             add_action( 'wp_ajax_b2bkingchangefieldrequired', array($this, 'b2bkingchangefieldrequired') );
    166             //placeholder
    167             add_action( 'wp_ajax_nopriv_b2bkingsavefieldplaceholder', array($this, 'b2bkingsavefieldplaceholder') );
    168             add_action( 'wp_ajax_b2bkingsavefieldplaceholder', array($this, 'b2bkingsavefieldplaceholder') );
    169 
    170             add_action( 'wp_ajax_nopriv_b2bkingsavefieldlabel', array($this, 'b2bkingsavefieldlabel') );
    171             add_action( 'wp_ajax_b2bkingsavefieldlabel', array($this, 'b2bkingsavefieldlabel') );
    172 
    173             add_action( 'wp_ajax_nopriv_b2bking_save_posts_per_page', array($this, 'b2bking_save_posts_per_page') );
    174             add_action( 'wp_ajax_b2bking_save_posts_per_page', array($this, 'b2bking_save_posts_per_page') );
     142
     143            // refresh dashboard data
     144            add_action( 'wp_ajax_b2bking_refresh_dashboard_data', array($this, 'b2bking_refresh_dashboard_data') );
     145
     146            // Reports get data
     147            add_action( 'wp_ajax_b2bking_reports_get_data', array($this, 'b2bking_reports_get_data') );
     148
     149
     150            add_action( 'wp_ajax_b2bkingchangefield', array($this, 'b2bkingchangefield') );
     151
     152            add_action( 'wp_ajax_b2bking_clear_rules_caches', array($this, 'b2bking_clear_rules_caches') );
     153            // required
     154            add_action( 'wp_ajax_b2bkingchangefieldrequired', array($this, 'b2bkingchangefieldrequired') );
     155            //placeholder
     156            add_action( 'wp_ajax_b2bkingsavefieldplaceholder', array($this, 'b2bkingsavefieldplaceholder') );
     157
     158            add_action( 'wp_ajax_b2bkingsavefieldlabel', array($this, 'b2bkingsavefieldlabel') );
     159
     160            add_action( 'wp_ajax_b2bking_save_posts_per_page', array($this, 'b2bking_save_posts_per_page') );
    175161
    176162            add_action( 'wp_ajax_b2bking_update_sort_menu_order', array($this, 'b2bking_update_sort_menu_order') );
     
    14331419        }
    14341420
     1421        // Capability check
     1422        if (!current_user_can( apply_filters('b2bking_backend_capability_needed', 'manage_woocommerce') )){
     1423            wp_send_json_error( 'Failed capability check.' );
     1424            wp_die();
     1425        }
     1426
    14351427        $user_id = sanitize_text_field($_POST['userid']);
    14361428        $fields_string = sanitize_text_field($_POST['field_strings']);
     
    14651457            wp_send_json_error( 'Invalid security token sent.' );
    14661458            wp_die();
     1459        }
     1460
     1461        // Capability check
     1462        if (!current_user_can( apply_filters('b2bking_backend_capability_needed', 'manage_woocommerce') )){
     1463            wp_send_json_error( 'Failed capability check.' );
     1464            wp_die();
    14671465        }
    14681466
     
    15261524            wp_send_json_error( 'Invalid security token sent.' );
    15271525            wp_die();
     1526        }
     1527
     1528        // Capability check
     1529        if (!current_user_can( apply_filters('b2bking_backend_capability_needed', 'manage_woocommerce') )){
     1530            wp_send_json_error( 'Failed capability check.' );
     1531            wp_die();
    15281532        }
    15291533
  • b2bking-wholesale-for-woocommerce/trunk/languages/b2bking.pot

    r3137054 r3372523  
    33msgstr ""
    44"Project-Id-Version: B2BKing Core\n"
    5 "POT-Creation-Date: 2024-08-17 18:01+0300\n"
    6 "PO-Revision-Date: 2024-08-17 18:01+0300\n"
     5"POT-Creation-Date: 2025-10-03 19:18+0200\n"
     6"PO-Revision-Date: 2025-10-03 19:18+0200\n"
    77"Last-Translator: \n"
    88"Language-Team: \n"
     
    1111"Content-Transfer-Encoding: 8bit\n"
    1212"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
    13 "X-Generator: Poedit 3.4\n"
     13"X-Generator: Poedit 3.4.4\n"
    1414"X-Poedit-Basepath: ..\n"
    1515"X-Poedit-Flags-xgettext: --add-comments=translators:\n"
     
    20242024msgstr ""
    20252025
    2026 #: admin/class-b2bking-admin.php:6776 includes/class-b2bking.php:1270
     2026#: admin/class-b2bking-admin.php:6776 includes/class-b2bking.php:1256
    20272027msgid "Subaccount"
    20282028msgstr ""
    20292029
    2030 #: admin/class-b2bking-admin.php:6778 includes/class-b2bking.php:1272
     2030#: admin/class-b2bking-admin.php:6778 includes/class-b2bking.php:1258
    20312031msgid "Main business account"
    20322032msgstr ""
    20332033
    2034 #: admin/class-b2bking-admin.php:6806 includes/class-b2bking.php:1300
     2034#: admin/class-b2bking-admin.php:6806 includes/class-b2bking.php:1286
    20352035msgid "Waiting Approval"
    20362036msgstr ""
     
    23352335msgstr ""
    23362336
    2337 #: admin/class-b2bking-admin.php:7617 includes/class-b2bking.php:189
     2337#: admin/class-b2bking-admin.php:7617 includes/class-b2bking.php:175
    23382338msgid "Disabled"
    23392339msgstr ""
     
    28842884msgstr ""
    28852885
    2886 #: includes/class-b2bking.php:889
     2886#: includes/class-b2bking.php:875
    28872887msgid "Invalid post type."
    28882888msgstr ""
    28892889
    2890 #: includes/class-b2bking.php:894
     2890#: includes/class-b2bking.php:880
    28912891msgid "You need a higher level of permission."
    28922892msgstr ""
    28932893
    2894 #: includes/class-b2bking.php:895
     2894#: includes/class-b2bking.php:881
    28952895msgid "Sorry, you are not allowed to edit posts in this post type."
    28962896msgstr ""
    28972897
    2898 #: includes/class-b2bking.php:968
     2898#: includes/class-b2bking.php:954
    28992899#, php-format
    29002900msgid "%s post updated."
     
    29032903msgstr[1] ""
    29042904
    2905 #: includes/class-b2bking.php:969
     2905#: includes/class-b2bking.php:955
    29062906msgid "1 post not updated, somebody is editing it."
    29072907msgstr ""
    29082908
    2909 #: includes/class-b2bking.php:971
     2909#: includes/class-b2bking.php:957
    29102910#, php-format
    29112911msgid "%s post not updated, somebody is editing it."
     
    29142914msgstr[1] ""
    29152915
    2916 #: includes/class-b2bking.php:973
     2916#: includes/class-b2bking.php:959
    29172917#, php-format
    29182918msgid "%s post permanently deleted."
     
    29212921msgstr[1] ""
    29222922
    2923 #: includes/class-b2bking.php:974
     2923#: includes/class-b2bking.php:960
    29242924#, php-format
    29252925msgid "%s post moved to the Trash."
     
    29282928msgstr[1] ""
    29292929
    2930 #: includes/class-b2bking.php:975
     2930#: includes/class-b2bking.php:961
    29312931#, php-format
    29322932msgid "%s post restored from the Trash."
     
    29352935msgstr[1] ""
    29362936
    2937 #: includes/class-b2bking.php:978
     2937#: includes/class-b2bking.php:964
    29382938#, php-format
    29392939msgid "%s page updated."
     
    29422942msgstr[1] ""
    29432943
    2944 #: includes/class-b2bking.php:979
     2944#: includes/class-b2bking.php:965
    29452945msgid "1 page not updated, somebody is editing it."
    29462946msgstr ""
    29472947
    2948 #: includes/class-b2bking.php:980
     2948#: includes/class-b2bking.php:966
    29492949#, php-format
    29502950msgid "%s page not updated, somebody is editing it."
     
    29532953msgstr[1] ""
    29542954
    2955 #: includes/class-b2bking.php:981
     2955#: includes/class-b2bking.php:967
    29562956#, php-format
    29572957msgid "%s page permanently deleted."
     
    29602960msgstr[1] ""
    29612961
    2962 #: includes/class-b2bking.php:982
     2962#: includes/class-b2bking.php:968
    29632963#, php-format
    29642964msgid "%s page moved to the Trash."
     
    29672967msgstr[1] ""
    29682968
    2969 #: includes/class-b2bking.php:983
     2969#: includes/class-b2bking.php:969
    29702970#, php-format
    29712971msgid "%s page restored from the Trash."
     
    29742974msgstr[1] ""
    29752975
    2976 #: includes/class-b2bking.php:986
     2976#: includes/class-b2bking.php:972
    29772977#, php-format
    29782978msgid "%s block updated."
     
    29812981msgstr[1] ""
    29822982
    2983 #: includes/class-b2bking.php:987
     2983#: includes/class-b2bking.php:973
    29842984msgid "1 block not updated, somebody is editing it."
    29852985msgstr ""
    29862986
    2987 #: includes/class-b2bking.php:988
     2987#: includes/class-b2bking.php:974
    29882988#, php-format
    29892989msgid "%s block not updated, somebody is editing it."
     
    29922992msgstr[1] ""
    29932993
    2994 #: includes/class-b2bking.php:989
     2994#: includes/class-b2bking.php:975
    29952995#, php-format
    29962996msgid "%s block permanently deleted."
     
    29992999msgstr[1] ""
    30003000
    3001 #: includes/class-b2bking.php:990
     3001#: includes/class-b2bking.php:976
    30023002#, php-format
    30033003msgid "%s block moved to the Trash."
     
    30063006msgstr[1] ""
    30073007
    3008 #: includes/class-b2bking.php:991
     3008#: includes/class-b2bking.php:977
    30093009#, php-format
    30103010msgid "%s block restored from the Trash."
     
    30133013msgstr[1] ""
    30143014
    3015 #: includes/class-b2bking.php:1015
     3015#: includes/class-b2bking.php:1001
    30163016#, php-format
    30173017msgid "Search results for: %s"
    30183018msgstr ""
    30193019
    3020 #: includes/class-b2bking.php:1038
     3020#: includes/class-b2bking.php:1024
    30213021msgid "Undo"
    30223022msgstr ""
     
    30363036
    30373037#: includes/emails/class-b2bking-new-customer-email.php:106
    3038 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:102
    3039 #: includes/emails/class-b2bking-new-message-email.php:89
    3040 #: includes/emails/class-b2bking-your-account-approved-email.php:82
    3041 msgid "Enable/Disable"
    3042 msgstr ""
    3043 
    3044 #: includes/emails/class-b2bking-new-customer-email.php:108
    30453038#: includes/emails/class-b2bking-new-customer-requires-approval-email.php:104
    30463039#: includes/emails/class-b2bking-new-message-email.php:91
    3047 #: includes/emails/class-b2bking-your-account-approved-email.php:84
     3040#: includes/emails/class-b2bking-your-account-approved-email.php:85
     3041msgid "Enable/Disable"
     3042msgstr ""
     3043
     3044#: includes/emails/class-b2bking-new-customer-email.php:108
     3045#: includes/emails/class-b2bking-new-customer-requires-approval-email.php:106
     3046#: includes/emails/class-b2bking-new-message-email.php:93
     3047#: includes/emails/class-b2bking-your-account-approved-email.php:87
    30483048msgid "Enable this email notification"
    30493049msgstr ""
    30503050
    30513051#: includes/emails/class-b2bking-new-customer-email.php:112
    3052 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:108
     3052#: includes/emails/class-b2bking-new-customer-requires-approval-email.php:110
    30533053msgid "Recipient(s)"
    30543054msgstr ""
    30553055
    30563056#: includes/emails/class-b2bking-new-customer-email.php:114
    3057 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:110
     3057#: includes/emails/class-b2bking-new-customer-requires-approval-email.php:112
    30583058msgid "Enter recipients (comma separated) for this email. Defaults to"
    30593059msgstr ""
    30603060
    30613061#: includes/emails/class-b2bking-new-customer-email.php:121
    3062 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:117
    3063 #: includes/emails/class-b2bking-new-message-email.php:97
    3064 #: includes/emails/class-b2bking-your-account-approved-email.php:90
     3062#: includes/emails/class-b2bking-new-customer-requires-approval-email.php:119
     3063#: includes/emails/class-b2bking-new-message-email.php:99
     3064#: includes/emails/class-b2bking-your-account-approved-email.php:93
    30653065msgid ""
    30663066"This controls the email subject line. Leave blank to use the default "
     
    30693069
    30703070#: includes/emails/class-b2bking-new-customer-email.php:126
    3071 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:122
    3072 #: includes/emails/class-b2bking-new-message-email.php:102
    3073 #: includes/emails/class-b2bking-your-account-approved-email.php:95
    3074 msgid "Email Heading"
    3075 msgstr ""
    3076 
    3077 #: includes/emails/class-b2bking-new-customer-email.php:128
    30783071#: includes/emails/class-b2bking-new-customer-requires-approval-email.php:124
    30793072#: includes/emails/class-b2bking-new-message-email.php:104
    3080 #: includes/emails/class-b2bking-your-account-approved-email.php:97
     3073#: includes/emails/class-b2bking-your-account-approved-email.php:98
     3074msgid "Email Heading"
     3075msgstr ""
     3076
     3077#: includes/emails/class-b2bking-new-customer-email.php:128
     3078#: includes/emails/class-b2bking-new-customer-requires-approval-email.php:126
     3079#: includes/emails/class-b2bking-new-message-email.php:106
     3080#: includes/emails/class-b2bking-your-account-approved-email.php:100
    30813081msgid ""
    30823082"This controls the main heading contained within the email notification. "
     
    30853085
    30863086#: includes/emails/class-b2bking-new-customer-email.php:133
    3087 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:129
    3088 #: includes/emails/class-b2bking-new-message-email.php:109
    3089 #: includes/emails/class-b2bking-your-account-approved-email.php:102
    3090 msgid "Email type"
    3091 msgstr ""
    3092 
    3093 #: includes/emails/class-b2bking-new-customer-email.php:135
    30943087#: includes/emails/class-b2bking-new-customer-requires-approval-email.php:131
    30953088#: includes/emails/class-b2bking-new-message-email.php:111
    3096 #: includes/emails/class-b2bking-your-account-approved-email.php:104
     3089#: includes/emails/class-b2bking-your-account-approved-email.php:105
     3090msgid "Email type"
     3091msgstr ""
     3092
     3093#: includes/emails/class-b2bking-new-customer-email.php:135
     3094#: includes/emails/class-b2bking-new-customer-requires-approval-email.php:133
     3095#: includes/emails/class-b2bking-new-message-email.php:113
     3096#: includes/emails/class-b2bking-your-account-approved-email.php:107
    30973097msgid "Choose which format of email to send."
    30983098msgstr ""
     
    31103110msgstr ""
    31113111
    3112 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:13
    3113 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:19
    3114 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:20
     3112#: includes/emails/class-b2bking-new-customer-requires-approval-email.php:15
     3113#: includes/emails/class-b2bking-new-customer-requires-approval-email.php:21
     3114#: includes/emails/class-b2bking-new-customer-requires-approval-email.php:22
    31153115msgid "New customer requires approval"
    31163116msgstr ""
    31173117
    3118 #: includes/emails/class-b2bking-new-customer-requires-approval-email.php:16
     3118#: includes/emails/class-b2bking-new-customer-requires-approval-email.php:18
    31193119msgid ""
    31203120"This email is sent to admin when a new customer registers and requires "
     
    31223122msgstr ""
    31233123
    3124 #: includes/emails/class-b2bking-new-message-email.php:13
     3124#: includes/emails/class-b2bking-new-message-email.php:15
    31253125msgid "New message (B2BKing Premium)"
    31263126msgstr ""
    31273127
    3128 #: includes/emails/class-b2bking-new-message-email.php:16
     3128#: includes/emails/class-b2bking-new-message-email.php:18
    31293129msgid ""
    31303130"This email is sent when a new message (quote request, or user inquiry, or "
     
    31323132msgstr ""
    31333133
    3134 #: includes/emails/class-b2bking-new-message-email.php:19
    3135 #: includes/emails/class-b2bking-new-message-email.php:20
     3134#: includes/emails/class-b2bking-new-message-email.php:21
     3135#: includes/emails/class-b2bking-new-message-email.php:22
    31363136msgid "New message (conversations)"
    31373137msgstr ""
    31383138
    3139 #: includes/emails/class-b2bking-your-account-approved-email.php:13
     3139#: includes/emails/class-b2bking-your-account-approved-email.php:16
    31403140msgid "Account approved"
    31413141msgstr ""
    31423142
    3143 #: includes/emails/class-b2bking-your-account-approved-email.php:18
     3143#: includes/emails/class-b2bking-your-account-approved-email.php:21
    31443144msgid ""
    31453145"This email notifies the customer when their account has been manually "
     
    31473147msgstr ""
    31483148
    3149 #: includes/emails/class-b2bking-your-account-approved-email.php:21
    3150 #: includes/emails/class-b2bking-your-account-approved-email.php:22
     3149#: includes/emails/class-b2bking-your-account-approved-email.php:24
     3150#: includes/emails/class-b2bking-your-account-approved-email.php:25
    31513151msgid "Your account has been approved"
    31523152msgstr ""
  • b2bking-wholesale-for-woocommerce/trunk/readme.txt

    r3367328 r3372523  
    99Tested up to: 6.8
    1010Requires PHP: 5.6.20
    11 Stable tag: 4.9.20
    12 Version: 4.9.20
     11Stable tag: 4.9.30
     12Version: 4.9.30
    1313License: GPLv2 or later
    1414License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    381381
    382382Yes! B2BKing can not only hide price, but it can also hide products entirely using the plugin's visibility module. This can be configured for specific products, categories, users or user groups. More info [here](https://woocommerce-b2b-plugin.com/docs/faq-product-visibility-is-not-working-how-to-set-up-product-visibility/ "here")
     383
     384= How can I report security bugs? =
     385
     386You can report security bugs through the Patchstack Vulnerability Disclosure Program. The Patchstack team helps validate, triage and handle any security vulnerabilities. [Report a security vulnerability.](https://patchstack.com/database/vdp/9e5fb5c8-597a-4c1a-b7be-6766c7894710)
Note: See TracChangeset for help on using the changeset viewer.