Changeset 2766105
- Timestamp:
- 08/04/2022 12:40:37 AM (4 years ago)
- Location:
- rest-xmlrpc-data-checker/trunk
- Files:
-
- 5 added
- 14 edited
-
assets/css/admin.css (modified) (3 diffs)
-
assets/css/admin.min.css (modified) (1 diff)
-
assets/js/admin.js (modified) (1 diff)
-
assets/js/admin.min.js (modified) (1 diff)
-
lib (added)
-
lib/jquery-flex-tree (added)
-
lib/jquery-flex-tree/flex-tree-minimal.min.css (added)
-
lib/jquery-flex-tree/flex-tree.min.css (added)
-
lib/jquery-flex-tree/flex-tree.min.js (added)
-
php/adminpages/settings.php (modified) (3 diffs)
-
php/adminpages/user-fields.php (modified) (1 diff)
-
php/class-rest-xmlrpc-data-checker-admin.php (modified) (5 diffs)
-
php/class-rest-xmlrpc-data-checker-rest.php (modified) (2 diffs)
-
php/class-rest-xmlrpc-data-checker-users-wp-list-table.php (modified) (1 diff)
-
php/class-rest-xmlrpc-data-checker-utils.php (modified) (1 diff)
-
php/class-rest-xmlrpc-data-checker-xmlrpc.php (modified) (1 diff)
-
php/class-rest-xmlrpc-data-checker.php (modified) (3 diffs)
-
readme.txt (modified) (2 diffs)
-
rest-xmlrpc-data-checker.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
rest-xmlrpc-data-checker/trunk/assets/css/admin.css
r2361295 r2766105 28 28 background-color: #fff; 29 29 border: 1px solid #e5e5e5; 30 padding: 0 10px; 30 31 } 31 32 .form-table .rest-xmlrpc-data-checker-cb-list h2 span {33 cursor: pointer;34 }35 36 .form-table .rest-xmlrpc-data-checker-cb-list ul {37 display: none;38 margin-top: 0;39 margin-left: 34px;40 }41 42 .form-table .rest-xmlrpc-data-checker-cb-list h2 span:after,43 .form-table .rest-xmlrpc-data-checker-cb-list h2 span.closed:after {44 content: "\f142";45 display: inline-block;46 font: 400 20px / 1 dashicons;47 width: 20px;48 margin-top: 4px;49 vertical-align: bottom;50 }51 52 .form-table .rest-xmlrpc-data-checker-cb-list h2 span:after {53 color: #72777c;54 }55 56 .form-table .rest-xmlrpc-data-checker-cb-list h2 span.closed:after {57 content: "\f140";58 }59 60 32 61 33 #xmlrpc_trusted_users { … … 116 88 } 117 89 118 div.rest-xmlrpc-data-checker-cb-list input[type="checkbox"]:indeterminate:before {119 content: "\f460";120 font-family: dashicons;121 color: #1e8cbe;122 margin-top: 7px;123 display: inline-block;124 }125 126 90 /* Users list */ 127 91 th.column-rest-xmlrpc-data-checker-status { … … 162 126 } 163 127 } 128 129 /* Flex tree */ 130 ul.flex-tree { 131 padding-left: 0; 132 } 133 ul.flex-tree li span.closed:after, 134 ul.flex-tree li span.open:after { 135 content: "\f142"; 136 font-family: dashicons; 137 color: #72777c; 138 vertical-align: bottom; 139 } 140 ul.flex-tree li span.open:after { 141 content: "\f140"; 142 } 143 144 ul.flex-tree input[type="checkbox"]:indeterminate:before { 145 content: "\f460"; 146 font-family: dashicons; 147 color: #1e8cbe; 148 margin-top: 7px; 149 display: inline-block; 150 } 151 152 @media screen and ( max-width: 782px ) { 153 154 ul.flex-tree input[type="checkbox"]:indeterminate:before { 155 margin-top: 12px; 156 font-size: 20px; 157 font-weight: bold; 158 } 159 } -
rest-xmlrpc-data-checker/trunk/assets/css/admin.min.css
r2361295 r2766105 1 .form-table .rest-xmlrpc-data-checker-cb-list h2 span,h2.nav-tab-wrapper a.rest-xmlrpc-data-checker,table.rest-xmlrpc-data-checker-users-list.cb tbody tr td{cursor:pointer}h2.nav-tab-wrapper.rest-xmlrpc-data-checker{padding:inherit!important}section.rest-xmlrpc-data-checker{display:none}section.rest-xmlrpc-data-checker:first-of-type{display:block}.form-table .rest-xmlrpc-data-checker-indent{margin-left:24px}.form-table .rest-xmlrpc-data-checker-cb-list{background-color:#fff;border:1px solid #e5e5e5}.form-table .rest-xmlrpc-data-checker-cb-list ul{display:none;margin-top:0;margin-left:34px}.form-table .rest-xmlrpc-data-checker-cb-list h2 span.closed:after,.form-table .rest-xmlrpc-data-checker-cb-list h2 span:after{content:"\f142";display:inline-block;font:400 20px/1 dashicons;width:20px;margin-top:4px;vertical-align:bottom}.form-table .rest-xmlrpc-data-checker-cb-list h2 span:after{color:#72777c}.form-table .rest-xmlrpc-data-checker-cb-list h2 span.closed:after{content:"\f140"}#xmlrpc_trusted_users{height:200px}div.update-nag.rest_basic_auth_alert,div.update-nag.xmlrpc_enable_alert{margin-top:5px;margin-left:22px;display:none;background-color:#fff;border-left:4px solid #ffba00;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.prettydropdown>ul{font:inherit!important}div table.rest-xmlrpc-data-checker-users-list{table-layout:initial}div table.rest-xmlrpc-data-checker-users-list th{padding:8px 10px}div table.rest-xmlrpc-data-checker-users-list tbody{display:block;max-height:200px;overflow-y:scroll}table.rest-xmlrpc-data-checker-users-list tbody tr,table.rest-xmlrpc-data-checker-users-list tfoot,table.rest-xmlrpc-data-checker-users-list thead{display:table;width:100%;table-layout:fixed}table.rest-xmlrpc-data-checker-users-list thead{width:calc(100% - 1.1em)}table.rest-xmlrpc-data-checker-users-list.cb tbody tr.selected{background-color:#c6d5ff}input[type=checkbox].indeterminate{background-color:#eee}div.rest-xmlrpc-data-checker-cb-list input[type=checkbox]:indeterminate:before{content:"\f460";font-family:dashicons;color:#1e8cbe;margin-top:7px;display:inline-block}th.column-rest-xmlrpc-data-checker-status{text-align:center}.rest-xmlrpc-data-checker-ok{color:green}.rest-xmlrpc-data-checker-ko{color:#d00}td.column-rest-xmlrpc-data-checker-status div.table{margin:auto;display:table}td.column-rest-xmlrpc-data-checker-status div.row{display:table-row}td.column-rest-xmlrpc-data-checker-status div.cell{display:table-cell;padding-right:10px}@media screen and (max-width:782px){td.column-rest-xmlrpc-data-checker-status,th.column-rest-xmlrpc-data-checker-status{text-align:inherit}td.column-rest-xmlrpc-data-checker-status div.table{margin:inherit}}1 h2.nav-tab-wrapper a.rest-xmlrpc-data-checker,table.rest-xmlrpc-data-checker-users-list.cb tbody tr td{cursor:pointer}h2.nav-tab-wrapper.rest-xmlrpc-data-checker{padding:inherit!important}section.rest-xmlrpc-data-checker{display:none}section.rest-xmlrpc-data-checker:first-of-type{display:block}.form-table .rest-xmlrpc-data-checker-indent{margin-left:24px}.form-table .rest-xmlrpc-data-checker-cb-list{background-color:#fff;border:1px solid #e5e5e5;padding:0 10px}#xmlrpc_trusted_users{height:200px}div.update-nag.rest_basic_auth_alert,div.update-nag.xmlrpc_enable_alert{margin-top:5px;margin-left:22px;display:none;background-color:#fff;border-left:4px solid #ffba00;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.prettydropdown>ul{font:inherit!important}div table.rest-xmlrpc-data-checker-users-list{table-layout:initial}div table.rest-xmlrpc-data-checker-users-list th{padding:8px 10px}div table.rest-xmlrpc-data-checker-users-list tbody{display:block;max-height:200px;overflow-y:scroll}table.rest-xmlrpc-data-checker-users-list tbody tr,table.rest-xmlrpc-data-checker-users-list tfoot,table.rest-xmlrpc-data-checker-users-list thead{display:table;width:100%;table-layout:fixed}table.rest-xmlrpc-data-checker-users-list thead{width:calc(100% - 1.1em)}table.rest-xmlrpc-data-checker-users-list.cb tbody tr.selected{background-color:#c6d5ff}input[type=checkbox].indeterminate{background-color:#eee}th.column-rest-xmlrpc-data-checker-status{text-align:center}.rest-xmlrpc-data-checker-ok{color:green}.rest-xmlrpc-data-checker-ko{color:#d00}td.column-rest-xmlrpc-data-checker-status div.table{margin:auto;display:table}td.column-rest-xmlrpc-data-checker-status div.row{display:table-row}td.column-rest-xmlrpc-data-checker-status div.cell{display:table-cell;padding-right:10px}@media screen and (max-width:782px){td.column-rest-xmlrpc-data-checker-status,th.column-rest-xmlrpc-data-checker-status{text-align:inherit}td.column-rest-xmlrpc-data-checker-status div.table{margin:inherit}}ul.flex-tree{padding-left:0}ul.flex-tree li span.closed:after,ul.flex-tree li span.open:after{content:"\f142";font-family:dashicons;color:#72777c;vertical-align:bottom}ul.flex-tree li span.open:after{content:"\f140"}ul.flex-tree input[type=checkbox]:indeterminate:before{content:"\f460";font-family:dashicons;color:#1e8cbe;margin-top:7px;display:inline-block}@media screen and (max-width:782px){ul.flex-tree input[type=checkbox]:indeterminate:before{margin-top:12px;font-size:20px;font-weight:700}} -
rest-xmlrpc-data-checker/trunk/assets/js/admin.js
r2361295 r2766105 64 64 } 65 65 66 // Handle toggle over methods/end-point. 67 $( '.rest-xmlrpc-data-checker-cb-list h2 span' ).on( 'click', function() { 68 $( this ) 69 .toggleClass( 'closed' ) 70 .parent().next().toggle( 200 ); 66 // Setup jQuery Flex Tree for REST routes. 67 $( '#rest-xmlrpc-data-checker-rest-routes' ).flexTree( 68 { 69 type: 'checkbox', 70 name: 'rest_xmlrpc_data_checker_settings[rest][allowed_routes][]', 71 collapsed: true, 72 items: rest_xmlrpc_data_checker_jft_items.rest 73 } 74 ); 71 75 72 } ); 73 74 // Check all/none over methods/end-point. 75 $( '.rest-xmlrpc-data-checker-cb-list h2' ).find( 'input[type="checkbox"]:first' ).on( 'click', function() { 76 $( this ).removeClass( 'indeterminate' ); 77 $( this ).parent().next().find( 'input[type="checkbox"]' ).prop( 'checked', $( this ).prop( 'checked' ) ); 78 } ); 79 80 // Handle toggle on 'all' checkboxes. 81 var check_all_checkbox = function() { 82 var $all_cb = $( this ).parents( 'ul' ).prev().find( 'input[type="checkbox"]:first' ); 83 84 // Remove checkall. 85 if ( ! $( this ).prop( 'checked' ) ) { 86 $all_cb.prop( 'checked', false ); 76 // Setup jQuery Flex Tree for XML-RPC methods. 77 $( '#rest-xmlrpc-data-checker-xmlrpc-methods' ).flexTree( 78 { 79 type: 'checkbox', 80 name: 'rest_xmlrpc_data_checker_settings[xmlrpc][allowed_methods][]', 81 collapsed: true, 82 items: rest_xmlrpc_data_checker_jft_items.xmlrpc 87 83 } 88 var all_is_checked = true, 89 some_is_checked = false; 90 91 // Check all childrens. 92 $( this ).parents( 'ul' ).find( 'input[type="checkbox"]' ).each( function() { 93 if ( ! $( this ).prop( 'checked' ) ) { 94 all_is_checked = false; 95 } 96 else { 97 some_is_checked = true; 98 } 99 } ); 100 101 if ( some_is_checked ) { 102 $all_cb.addClass( 'indeterminate' ) 103 .prop( 'indeterminate', true ); 104 } 105 else { 106 $all_cb.removeClass( 'indeterminate' ) 107 .prop( 'indeterminate', false ); 108 } 109 110 if ( all_is_checked ) { 111 $all_cb.prop( 'checked', true ) 112 .prop( 'indeterminate', false ) 113 .removeClass( 'indeterminate' ); 114 } 115 116 }; 117 118 // Check parent at run time. 119 $( '.rest-xmlrpc-data-checker-cb-list ul input[type="checkbox"]' ).on( 'click', check_all_checkbox ); 120 121 // Check parent checkbox on load. 122 $( '.rest-xmlrpc-data-checker-cb-list ul' ).each( function() { 123 ( $( 'input[type="checkbox"]:first', this ) ).each( check_all_checkbox ); 124 } ); 84 ); 125 85 126 86 }); -
rest-xmlrpc-data-checker/trunk/assets/js/admin.min.js
r2361295 r2766105 1 1 /* REST XMLRPC Data Checker */ 2 !function(a){a(document).ready(function(){a(".nav-tab-wrapper.rest-xmlrpc-data-checker a").on("click",function(){return a(".nav-tab.rest-xmlrpc-data-checker").removeClass("nav-tab-active"),a(this).addClass("nav-tab-active"),a("section.rest-xmlrpc-data-checker").hide().eq(a(this).index()).show(),a('input[name="'+rest_xmlrpc_data_checker_i18n.prefix+'active_tab"]').val(a(this).data("section")),document.location.hash=a(this).data("section"),!1}),a('.nav-tab-wrapper.rest-xmlrpc-data-checker a[data-section="'+document.location.hash.replace(/^#+/,"")+'"]').trigger("click"),a("table.rest-xmlrpc-data-checker-users-list.cb tbody tr td").on("click",function(b){a(b.currentTarget).parent().find("th input").first().trigger("click")}),/^https/.test(document.location.protocol)||("basic_auth"===a('input[name="'+rest_xmlrpc_data_checker_i18n.prefix+'settings\\[rest\\]\\[auth_method\\]"]:checked').val()?a("div.update-nag.rest_basic_auth_alert").show():a("."+rest_xmlrpc_data_checker_i18n.prefix+"rest_enable").hide(),a('input[name="'+rest_xmlrpc_data_checker_i18n.prefix+'settings\\[rest\\]\\[auth_method\\]"]').on("click",function(){"basic_auth"===a(this).val()?(a("div.update-nag.rest_basic_auth_alert").show(200),a("."+rest_xmlrpc_data_checker_i18n.prefix+"rest_enable").show(200)):(a("div.update-nag.rest_basic_auth_alert").hide(200),a("."+rest_xmlrpc_data_checker_i18n.prefix+"rest_enable").hide(200))}),!1===a("#"+rest_xmlrpc_data_checker_i18n.prefix+"settings_xmlrpc_disable").prop("checked")&&a("div.update-nag.xmlrpc_enable_alert").show(),a("#"+rest_xmlrpc_data_checker_i18n.prefix+"settings_xmlrpc_disable").on("click",function(){!1===a(this).prop("checked")?a("div.update-nag.xmlrpc_enable_alert").show(200):a("div.update-nag.xmlrpc_enable_alert").hide(200)})),a(" .rest-xmlrpc-data-checker-cb-list h2 span").on("click",function(){a(this).toggleClass("closed").parent().next().toggle(200)}),a(".rest-xmlrpc-data-checker-cb-list h2").find('input[type="checkbox"]:first').on("click",function(){a(this).removeClass("indeterminate"),a(this).parent().next().find('input[type="checkbox"]').prop("checked",a(this).prop("checked"))});var b=function(){var b=a(this).parents("ul").prev().find('input[type="checkbox"]:first');a(this).prop("checked")||b.prop("checked",!1);var c=!0,d=!1;a(this).parents("ul").find('input[type="checkbox"]').each(function(){a(this).prop("checked")?d=!0:c=!1}),d?b.addClass("indeterminate").prop("indeterminate",!0):b.removeClass("indeterminate").prop("indeterminate",!1),c&&b.prop("checked",!0).prop("indeterminate",!1).removeClass("indeterminate")};a('.rest-xmlrpc-data-checker-cb-list ul input[type="checkbox"]').on("click",b),a(".rest-xmlrpc-data-checker-cb-list ul").each(function(){a('input[type="checkbox"]:first',this).each(b)})})}(jQuery);2 !function(a){a(document).ready(function(){a(".nav-tab-wrapper.rest-xmlrpc-data-checker a").on("click",function(){return a(".nav-tab.rest-xmlrpc-data-checker").removeClass("nav-tab-active"),a(this).addClass("nav-tab-active"),a("section.rest-xmlrpc-data-checker").hide().eq(a(this).index()).show(),a('input[name="'+rest_xmlrpc_data_checker_i18n.prefix+'active_tab"]').val(a(this).data("section")),document.location.hash=a(this).data("section"),!1}),a('.nav-tab-wrapper.rest-xmlrpc-data-checker a[data-section="'+document.location.hash.replace(/^#+/,"")+'"]').trigger("click"),a("table.rest-xmlrpc-data-checker-users-list.cb tbody tr td").on("click",function(b){a(b.currentTarget).parent().find("th input").first().trigger("click")}),/^https/.test(document.location.protocol)||("basic_auth"===a('input[name="'+rest_xmlrpc_data_checker_i18n.prefix+'settings\\[rest\\]\\[auth_method\\]"]:checked').val()?a("div.update-nag.rest_basic_auth_alert").show():a("."+rest_xmlrpc_data_checker_i18n.prefix+"rest_enable").hide(),a('input[name="'+rest_xmlrpc_data_checker_i18n.prefix+'settings\\[rest\\]\\[auth_method\\]"]').on("click",function(){"basic_auth"===a(this).val()?(a("div.update-nag.rest_basic_auth_alert").show(200),a("."+rest_xmlrpc_data_checker_i18n.prefix+"rest_enable").show(200)):(a("div.update-nag.rest_basic_auth_alert").hide(200),a("."+rest_xmlrpc_data_checker_i18n.prefix+"rest_enable").hide(200))}),!1===a("#"+rest_xmlrpc_data_checker_i18n.prefix+"settings_xmlrpc_disable").prop("checked")&&a("div.update-nag.xmlrpc_enable_alert").show(),a("#"+rest_xmlrpc_data_checker_i18n.prefix+"settings_xmlrpc_disable").on("click",function(){!1===a(this).prop("checked")?a("div.update-nag.xmlrpc_enable_alert").show(200):a("div.update-nag.xmlrpc_enable_alert").hide(200)})),a("#rest-xmlrpc-data-checker-rest-routes").flexTree({type:"checkbox",name:"rest_xmlrpc_data_checker_settings[rest][allowed_routes][]",collapsed:!0,items:rest_xmlrpc_data_checker_jft_items.rest}),a("#rest-xmlrpc-data-checker-xmlrpc-methods").flexTree({type:"checkbox",name:"rest_xmlrpc_data_checker_settings[xmlrpc][allowed_methods][]",collapsed:!0,items:rest_xmlrpc_data_checker_jft_items.xmlrpc})})}(jQuery); -
rest-xmlrpc-data-checker/trunk/php/adminpages/settings.php
r2361295 r2766105 9 9 // PHPCS:disable Generic.WhiteSpace.ScopeIndent.Incorrect 10 10 11 // Global. 12 global $wp_query, $wp; 13 14 /** 15 * Build checkbox list. 16 * 17 * @param array $args { 18 * Arguments list. 19 * @type array $items 20 * @type string $name 21 * @type array $checked_items 22 * } 23 */ 24 function cb_list( $args = array() ) { 25 $args = array_merge( 26 array( 27 'items' => array(), 28 'name' => '', 29 'checked_items' => array(), 30 ), 31 $args 32 ); 33 ?> 34 <div class="rest-xmlrpc-data-checker-cb-list"> 35 <?php 36 foreach ( $args['items'] as $key => $value ) { 37 ?> 38 <h2><input type="checkbox"> <span class="closed"><?php echo esc_html( $key ); ?></span></h2> 39 <ul> 40 <?php 41 foreach ( $value as $item ) { 42 ?> 43 <li> 44 <label> 45 <input name="<?php echo esc_attr( $args['name'] ); ?>" type="checkbox" value="<?php echo esc_attr( $item ); ?>" <?php checked( 1, in_array( $item, $args['checked_items'], true ) ); ?>"> 46 <?php echo esc_html( $item ); ?> 47 </label> 48 </li> 49 <?php 50 } 51 ?> 52 </ul> 53 <?php 54 } 55 ?> 56 <div> 57 <?php 58 } 11 echo '<script type="text/javascript"> var rest_xmlrpc_data_checker_jft_items = ' . json_encode( $params['jft_items'] ) . ';</script>'; 59 12 ?> 60 13 <div class="wrap"> … … 202 155 <?php esc_html_e( 'This will applied only if REST API interface has been disabled for unlogged users.', 'rest-xmlrpc-data-checker' ); ?> 203 156 </p> 204 <?php 205 cb_list( 206 array( 207 'items' => $params['rest_routes'], 208 'name' => $params['prefix'] . 'settings[rest][allowed_routes][]', 209 'checked_items' => $params['settings']['rest']['allowed_routes'], 210 ) 211 ); 212 ?> 157 <div class="rest-xmlrpc-data-checker-cb-list" id="rest-xmlrpc-data-checker-rest-routes"></div> 213 158 </td> 214 159 </tr> … … 319 264 <?php esc_html_e( 'With this option active, you can selectively allow XML-RPC methods.', 'rest-xmlrpc-data-checker' ); ?> 320 265 </p> 321 <?php 322 cb_list( 323 array( 324 'items' => $params['xmlrpc_methods'], 325 'name' => $params['prefix'] . 'settings[xmlrpc][allowed_methods][]', 326 'checked_items' => $params['settings']['xmlrpc']['allowed_methods'], 327 ) 328 ); 329 ?> 266 <div class="rest-xmlrpc-data-checker-cb-list" id="rest-xmlrpc-data-checker-xmlrpc-methods"></div> 330 267 </td> 331 268 </tr> -
rest-xmlrpc-data-checker/trunk/php/adminpages/user-fields.php
r1972559 r2766105 1 1 <?php 2 2 /** 3 * User fields .3 * User fields settings template part. 4 4 * 5 5 * @package rest-xmlrpc-data-checker -
rest-xmlrpc-data-checker/trunk/php/class-rest-xmlrpc-data-checker-admin.php
r2361295 r2766105 49 49 50 50 /** 51 * Construct the plugin.51 * Plugin Admin constructor. 52 52 * 53 53 * @param array $args { … … 56 56 * @type boolean $debug 57 57 * } 58 *59 * @return object60 58 */ 61 59 public function __construct( $args = array() ) { … … 214 212 */ 215 213 public function load_css() { 216 global $post_type; 214 215 wp_enqueue_style( 216 $this->prefix . 'jquery-flex-tree-css', 217 REST_XMLRPC_DATA_CHECKER_BASEURL . 'lib/jquery-flex-tree/flex-tree-minimal.min.css', 218 array(), 219 REST_XMLRPC_DATA_CHECKER_VERSION, 220 'screen' 221 ); 217 222 218 223 wp_enqueue_style( 219 224 $this->prefix . 'css', 220 225 REST_XMLRPC_DATA_CHECKER_BASEURL . '/assets/css/admin' . $this->assets_suffix . '.css', 226 $this->prefix . 'jquery-flex-tree-css', 227 REST_XMLRPC_DATA_CHECKER_VERSION, 228 'screen' 229 ); 230 } 231 232 /** 233 * Load JavaScript files. 234 * 235 * @return void 236 */ 237 public function load_javascript() { 238 239 wp_enqueue_script( 240 $this->prefix . 'jquery-flex-tree-js', 241 REST_XMLRPC_DATA_CHECKER_BASEURL . 'lib/jquery-flex-tree/flex-tree.min.js', 221 242 array(), 222 243 REST_XMLRPC_DATA_CHECKER_VERSION, 223 'screen' 224 ); 225 } 226 227 /** 228 * Load JavaScript files. 229 * 230 * @return void 231 */ 232 public function load_javascript() { 233 global $post_type; 244 false 245 ); 234 246 235 247 wp_enqueue_script( 236 248 $this->prefix . 'js', 237 249 REST_XMLRPC_DATA_CHECKER_BASEURL . '/assets/js/admin' . $this->assets_suffix . '.js', 238 array(),250 $this->prefix . 'jquery-flex-tree-js', 239 251 REST_XMLRPC_DATA_CHECKER_VERSION, 240 252 false … … 341 353 ) 342 354 ), 355 'jft_items' => array( 356 'rest' => $this->build_jft_items( 357 array( 358 'items' => $rest_routes_items, 359 'checked_items' => $this->plugin_settings['rest']['allowed_routes'], 360 ) 361 ), 362 'xmlrpc' => $this->build_jft_items( 363 array( 364 'items' => $xmlrpc_methods_items, 365 'checked_items' => $this->plugin_settings['xmlrpc']['allowed_methods'], 366 ) 367 ), 368 ), 343 369 ) 344 370 ); … … 642 668 return $value; 643 669 } 670 671 /** 672 * Prepare items for use with jQuery Flex Tree. 673 * 674 * @param array $args { 675 * Arguments list. 676 * @type string $id Element ID. 677 * @type array $items Items. 678 * @type string $name Element name. 679 * @type array $checked_items Checked elements. 680 * } 681 * 682 * @since 1.3.3 683 * 684 * @return array 685 */ 686 public function build_jft_items( $args = array() ) { 687 688 $args = array_merge( 689 array( 690 'id' => null, 691 'items' => array(), 692 'name' => '', 693 'checked_items' => array(), 694 ), 695 $args 696 ); 697 698 $jft_items = array(); 699 700 foreach ( $args['items'] as $key => $value ) { 701 if ( is_array( $value ) ) { 702 $children = array(); 703 foreach ( $value as $item ) { 704 array_push( 705 $children, 706 array( 707 'label' => $item, 708 'value' => $item, 709 'checked' => in_array( $item, $args['checked_items'], true ), 710 ) 711 ); 712 } 713 array_push( 714 $jft_items, 715 array( 716 'label' => $key, 717 'childrens' => $children, 718 ) 719 ); 720 } 721 else { 722 array_push( 723 $jft_items, 724 array( 725 'label' => $value, 726 'value' => $value, 727 'checked' => in_array( $value, $args['checked_items'], true ), 728 ) 729 ); 730 } 731 } 732 733 return $jft_items; 734 } 644 735 } -
rest-xmlrpc-data-checker/trunk/php/class-rest-xmlrpc-data-checker-rest.php
r2096749 r2766105 35 35 36 36 /** 37 * Construct the plugin.37 * Plugin REST constructor. 38 38 * 39 39 * @param array $args { … … 42 42 * @type boolean $debug 43 43 * } 44 *45 * @return Rest46 44 */ 47 45 public function __construct( $args = array() ) { -
rest-xmlrpc-data-checker/trunk/php/class-rest-xmlrpc-data-checker-users-wp-list-table.php
r1972559 r2766105 82 82 83 83 $columns = $this->get_columns(); 84 $hidden = [];84 $hidden = array(); 85 85 $sortable = $this->get_sortable_columns(); 86 86 $this->_column_headers = array( $columns, $hidden, $sortable ); -
rest-xmlrpc-data-checker/trunk/php/class-rest-xmlrpc-data-checker-utils.php
r2096749 r2766105 131 131 * @return array The new array if the key exists. 132 132 */ 133 public static function array_insert_before( $args = []) {133 public static function array_insert_before( $args = array() ) { 134 134 135 135 // Check array. -
rest-xmlrpc-data-checker/trunk/php/class-rest-xmlrpc-data-checker-xmlrpc.php
r2096749 r2766105 134 134 /** 135 135 * 'xmlrpc_enabled' filter hook. Check remote IP over trusted IP list 136 * and turn on/off XML-RPC inte face accordingly.136 * and turn on/off XML-RPC interface accordingly. 137 137 * 138 138 * @return boolean -
rest-xmlrpc-data-checker/trunk/php/class-rest-xmlrpc-data-checker.php
r2096749 r2766105 74 74 * @type boolean $debug Default value is `false`. 75 75 * } 76 *77 * @return REST_XMLRPC_Data_Checker78 76 */ 79 77 public function __construct( $args = array() ) { … … 143 141 add_action( 'wp', array( $this, 'filter_wp' ), 10 ); 144 142 }; 143 144 // Handle specific plugin caps for multisite superadmin. 145 add_filter( 'map_meta_cap', array( $this, 'filter_map_meta_cap' ), 10, 3 ); 145 146 } 146 147 … … 167 168 // PHPCS:ignore 168 169 @header_remove( 'X-Pingback' ); 170 } 171 172 /** 173 * Multisite super admin has all caps by definition unless specifically denied. 174 * 175 * @param array $caps Capabilities. 176 * @param string $cap Capability. 177 * @param integer $user_id User ID. 178 * 179 * @return array 180 */ 181 public function filter_map_meta_cap( $caps, $cap, $user_id ) { 182 183 // Only checks for custom_capability. 184 if ( 185 is_multisite() 186 && is_super_admin( $user_id ) 187 && ( 'rest_xmlrpc_data_checker_xmlrpc_enable' === $cap || 'rest_xmlrpc_data_checker_rest_enable' === $cap ) 188 ) { 189 $user = get_userdata( $user_id ); 190 $user_caps = $user->get_role_caps(); 191 192 // If the user does not have the capability, or it's denied, then add do_not_allow. 193 if ( empty( $user_caps[ $cap ] ) ) { 194 $caps[] = 'do_not_allow'; 195 } 196 } 197 198 return $caps; 169 199 } 170 200 -
rest-xmlrpc-data-checker/trunk/readme.txt
r2361295 r2766105 4 4 Requires at least: 4.4 5 5 Requires PHP: 5.2.4 6 Tested up to: 5.57 Stable tag: 1. 3.26 Tested up to: 6.0 7 Stable tag: 1.4.0 8 8 License: GPLv2 or later 9 9 … … 123 123 == Upgrade Notice == 124 124 125 = 1.4.0 = 126 127 * Multisite support improvement for superadmin plugin's caps. 128 * Tested to the latest WordPress release. 129 125 130 = 1.3.1 = 126 131 127 Allows to use PHP single line comments in trusted network option; allows to prevent to leave blocks comments in `post_content` via XML-RPC.132 * Allows to use PHP single line comments in trusted network option; allows to prevent to leave blocks comments in `post_content` via XML-RPC. 128 133 129 134 = 1.3.0 = 130 135 131 Trusted networks check over IP address found in HTTP headers added by proxy or load balancer is now disabled by default. It can be enabled on plugin settings page.136 * Trusted networks check over IP address found in HTTP headers added by proxy or load balancer is now disabled by default. It can be enabled on plugin settings page. -
rest-xmlrpc-data-checker/trunk/rest-xmlrpc-data-checker.php
r2361295 r2766105 12 12 * Text Domain: rest-xmlrpc-data-checker 13 13 * Domain Path: /languages/ 14 * Version: 1. 3.214 * Version: 1.4.0 15 15 * License: GPLv2 or later 16 16 * License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 24 24 25 25 // Plugins constants. 26 define( 'REST_XMLRPC_DATA_CHECKER_VERSION', '1. 3.2' );26 define( 'REST_XMLRPC_DATA_CHECKER_VERSION', '1.4.0' ); 27 27 define( 'REST_XMLRPC_DATA_CHECKER_BASEDIR', dirname( __FILE__ ) ); 28 28 define( 'REST_XMLRPC_DATA_CHECKER_BASEURL', plugin_dir_url( __FILE__ ) );
Note: See TracChangeset
for help on using the changeset viewer.