admin.php
6 years ago
backup-handler.php
7 years ago
backup.php
6 years ago
cap-helper.php
6 years ago
filters-admin.php
6 years ago
filters-woocommerce.php
7 years ago
filters-wp_rest_workarounds.php
6 years ago
filters.php
6 years ago
functions-admin.php
6 years ago
functions.php
6 years ago
handler.php
6 years ago
inflect-cme.php
7 years ago
manager.php
6 years ago
network.php
6 years ago
pp-handler.php
6 years ago
pp-ui.php
6 years ago
publishpress-roles.php
6 years ago
pp-handler.php
92 lines
| 1 | <?php |
| 2 | |
| 3 | function _cme_update_pp_usage() { |
| 4 | static $updated; |
| 5 | if ( ! empty($updated) ) { return true; } |
| 6 | |
| 7 | if ( ! current_user_can( 'manage_capabilities' ) ) { |
| 8 | return false; |
| 9 | } |
| 10 | |
| 11 | if ( ! empty( $_REQUEST['update_filtered_types']) || ! empty( $_REQUEST['update_filtered_taxonomies']) || ! empty($_REQUEST['update_detailed_taxonomies']) || ! empty( $_REQUEST['SaveRole']) ) { |
| 12 | // update Press Permit "Filtered Post Types". This determines whether type-specific capability definitions are forced |
| 13 | $options = array( 'enabled_post_types', 'enabled_taxonomies', 'detailed_taxonomies' ); |
| 14 | |
| 15 | $posted = $_POST; |
| 16 | |
| 17 | foreach( $options as $option_basename ) { |
| 18 | if ( ! isset( $posted["{$option_basename}-options"] ) ) |
| 19 | continue; |
| 20 | |
| 21 | $unselected = array(); |
| 22 | $value = array(); |
| 23 | |
| 24 | foreach( $posted["{$option_basename}-options"] as $key ) { |
| 25 | if ( ( 'enabled_taxonomies' == $option_basename ) && ! empty( $posted["detailed_taxonomies-{$key}"] ) && ! empty( $posted['update_detailed_taxonomies']) ) { |
| 26 | // if Detailed is selected, also select Type-Specific |
| 27 | $posted["enabled_taxonomies-{$key}"] = true; |
| 28 | $value[$key] = true; |
| 29 | } elseif ( ( 'detailed_taxonomies' == $option_basename ) && empty( $posted["enabled_taxonomies-{$key}"] ) && ! empty( $posted['update_filtered_taxonomies']) ) { |
| 30 | // if Enabled is deselected, also deselect Type-Specific |
| 31 | $unselected[$key] = true; |
| 32 | } elseif ( empty( $posted["{$option_basename}-$key"] ) ) { |
| 33 | $unselected[$key] = true; |
| 34 | } else { |
| 35 | $value[$key] = true; |
| 36 | } |
| 37 | } |
| 38 | |
| 39 | //$option_name = ( ( 'detailed_taxonomies' == $option_basename ) || ! defined( 'PRESSPERMIT_ACTIVE' ) ) ? 'cme_' . $option_basename : 'pp_' . $option_basename; |
| 40 | $option_name = ( 'detailed_taxonomies' == $option_basename ) ? 'cme_' . $option_basename : 'pp_' . $option_basename; |
| 41 | |
| 42 | if ( $current = get_option( $option_name ) ) { |
| 43 | if ( $current = array_diff_key( $current, $unselected ) ) |
| 44 | $value = array_merge( $current, $value ); // retain setting for any types which were previously enabled for filtering but are currently not registered |
| 45 | } |
| 46 | |
| 47 | $value = stripslashes_deep($value); |
| 48 | |
| 49 | update_option( $option_name, $value ); |
| 50 | |
| 51 | if ( 'pp_enabled_post_types' == $option_name ) { |
| 52 | // ensure smooth transition if Press Permit Core is deactivated |
| 53 | update_option( 'cme_enabled_post_types', $value ); |
| 54 | } |
| 55 | |
| 56 | if (defined('PRESSPERMIT_ACTIVE') && in_array($option_basename, ['enabled_post_types', 'enabled_taxonomies'])) { |
| 57 | pp_capabilities_update_permissions_option($option_basename, $value); |
| 58 | } |
| 59 | |
| 60 | $updated = true; |
| 61 | } |
| 62 | |
| 63 | if ( ! empty( $_REQUEST['update_filtered_types']) ) { |
| 64 | update_option( 'pp_' . 'define_create_posts_cap', ! empty($_REQUEST['pp_define_create_posts_cap']) ); |
| 65 | } |
| 66 | } |
| 67 | |
| 68 | if ( defined( 'PRESSPERMIT_ACTIVE' ) ) { |
| 69 | if ( ! empty( $_REQUEST['SaveRole']) ) { |
| 70 | if ( ! empty( $_REQUEST['role'] ) ) { |
| 71 | $pp_only = (array) pp_capabilities_get_permissions_option( 'supplemental_role_defs' ); |
| 72 | |
| 73 | if ( empty($_REQUEST['pp_only_role']) ) |
| 74 | $pp_only = array_diff( $pp_only, array($_REQUEST['role']) ); |
| 75 | else |
| 76 | $pp_only[]= $_REQUEST['role']; |
| 77 | |
| 78 | pp_capabilities_update_permissions_option('supplemental_role_defs', array_unique($pp_only)); |
| 79 | |
| 80 | _cme_pp_default_pattern_role( $_REQUEST['role'] ); |
| 81 | } |
| 82 | } |
| 83 | |
| 84 | if ( $updated ) { |
| 85 | pp_refresh_options(); |
| 86 | } |
| 87 | } |
| 88 | |
| 89 | return $updated; |
| 90 | } |
| 91 | |
| 92 |