WordPress.org

Make WordPress Core

Ticket #44176: 44176.5.diff

File 44176.5.diff, 29.0 KB (added by garrett-eclipse, 20 months ago)

Updated patch to fix tests and minor adjustments

  • src/wp-admin/includes/schema.php

     
    695695        populate_roles_270();
    696696        populate_roles_280();
    697697        populate_roles_300();
     698        populate_roles_540();
    698699}
    699700
    700701/**
     
    924925        }
    925926}
    926927
     928/**
     929 * Create and modify WordPress roles for WordPress 5.4.0.
     930 *
     931 * @since 5.4.0
     932 */
     933function populate_roles_540() {
     934        // Add the privacy caps to the Administrators.
     935        $role = get_role( 'administrator' );
     936
     937        if ( ! empty( $role ) ) {
     938                $role->add_cap( 'export_others_personal_data' );
     939                $role->add_cap( 'erase_others_personal_data' );
     940                $role->add_cap( 'manage_privacy_options' );
     941        }
     942
     943        $role = get_role( 'editor' );
     944        if ( ! empty( $role ) ) {
     945                $role->add_cap( 'manage_privacy_options' );
     946        }
     947}
     948
    927949if ( ! function_exists( 'install_network' ) ) :
    928950        /**
    929951         * Install Network.
  • src/wp-admin/includes/upgrade.php

     
    833833                upgrade_530();
    834834        }
    835835
     836        // @todo update the db_version in this check when the proper one is known.
     837        if ( $wp_current_db_version < 47018 ) {
     838                upgrade_540();
     839        }
     840
    836841        maybe_disable_link_manager();
    837842
    838843        maybe_disable_automattic_widgets();
     
    21492154}
    21502155
    21512156/**
     2157 * Executes changes made in WordPress 5.4.0.
     2158 *
     2159 * @ignore
     2160 * @since 5.4.0
     2161 *
     2162 * @global int  $wp_current_db_version The old (current) database version.
     2163 */
     2164function upgrade_540() {
     2165        global $wp_current_db_version;
     2166
     2167        // @todo update the db_version in this check when the proper one is known.
     2168        if ( $wp_current_db_version < 47018 ) {
     2169                populate_roles_540();
     2170        }
     2171}
     2172
     2173/**
    21522174 * Executes network-level upgrade routines.
    21532175 *
    21542176 * @since 3.0.0
  • src/wp-admin/menu.php

     
    288288        $submenu['tools.php'][50] = array( __( 'Network Setup' ), 'setup_network', 'network.php' );
    289289}
    290290
    291 $menu[80]                               = array( __( 'Settings' ), 'manage_options', 'options-general.php', '', 'menu-top menu-icon-settings', 'menu-settings', 'dashicons-admin-settings' );
     291$menu[80] = array( __( 'Settings' ), 'manage_options', 'options-general.php', '', 'menu-top menu-icon-settings', 'menu-settings', 'dashicons-admin-settings' );
     292if ( current_user_can( 'manage_privacy_options' ) && ! current_user_can( 'manage_options' ) ) {
     293        $menu[80] = array( __( 'Settings' ), 'manage_privacy_options', 'options-privacy.php', '', 'menu-top menu-icon-settings', 'menu-settings', 'dashicons-admin-settings' );
     294}
     295
    292296        $submenu['options-general.php'][10] = array( _x( 'General', 'settings screen' ), 'manage_options', 'options-general.php' );
    293297        $submenu['options-general.php'][15] = array( __( 'Writing' ), 'manage_options', 'options-writing.php' );
    294298        $submenu['options-general.php'][20] = array( __( 'Reading' ), 'manage_options', 'options-reading.php' );
  • src/wp-includes/capabilities.php

     
    132132                         * so deleting it should require that too.
    133133                         */
    134134                        if ( (int) get_option( 'wp_page_for_privacy_policy' ) === $post->ID ) {
    135                                 $caps = array_merge( $caps, map_meta_cap( 'manage_privacy_options', $user_id ) );
     135                                $caps[] = 'manage_privacy_options';
    136136                        }
    137137
    138138                        break;
     
    203203                         * so editing it should require that too.
    204204                         */
    205205                        if ( (int) get_option( 'wp_page_for_privacy_policy' ) === $post->ID ) {
    206                                 $caps = array_merge( $caps, map_meta_cap( 'manage_privacy_options', $user_id ) );
     206                                $caps[] = 'manage_privacy_options';
    207207                        }
    208208
    209209                        break;
     
    573573                                $caps[] = 'update_core';
    574574                        }
    575575                        break;
    576                 case 'export_others_personal_data':
    577                 case 'erase_others_personal_data':
    578                 case 'manage_privacy_options':
    579                         $caps[] = is_multisite() ? 'manage_network' : 'manage_options';
    580                         break;
    581576                default:
    582577                        // Handle meta capabilities for custom post types.
    583578                        global $post_type_meta_caps;
  • tests/phpunit/tests/user/capabilities.php

     
    7676        final private function _getSingleSitePrimitiveCaps() {
    7777                return array(
    7878
    79                         'unfiltered_html'         => array( 'administrator', 'editor' ),
     79                        'unfiltered_html'             => array( 'administrator', 'editor' ),
    8080
    81                         'activate_plugins'        => array( 'administrator' ),
    82                         'create_users'            => array( 'administrator' ),
    83                         'delete_plugins'          => array( 'administrator' ),
    84                         'delete_themes'           => array( 'administrator' ),
    85                         'delete_users'            => array( 'administrator' ),
    86                         'edit_files'              => array( 'administrator' ),
    87                         'edit_plugins'            => array( 'administrator' ),
    88                         'edit_themes'             => array( 'administrator' ),
    89                         'edit_users'              => array( 'administrator' ),
    90                         'install_plugins'         => array( 'administrator' ),
    91                         'install_themes'          => array( 'administrator' ),
    92                         'update_core'             => array( 'administrator' ),
    93                         'update_plugins'          => array( 'administrator' ),
    94                         'update_themes'           => array( 'administrator' ),
    95                         'edit_theme_options'      => array( 'administrator' ),
    96                         'export'                  => array( 'administrator' ),
    97                         'import'                  => array( 'administrator' ),
    98                         'list_users'              => array( 'administrator' ),
    99                         'manage_options'          => array( 'administrator' ),
    100                         'promote_users'           => array( 'administrator' ),
    101                         'remove_users'            => array( 'administrator' ),
    102                         'switch_themes'           => array( 'administrator' ),
    103                         'edit_dashboard'          => array( 'administrator' ),
    104                         'resume_plugins'          => array( 'administrator' ),
    105                         'resume_themes'           => array( 'administrator' ),
    106                         'view_site_health_checks' => array( 'administrator' ),
     81                        'activate_plugins'            => array( 'administrator' ),
     82                        'create_users'                => array( 'administrator' ),
     83                        'delete_plugins'              => array( 'administrator' ),
     84                        'delete_themes'               => array( 'administrator' ),
     85                        'delete_users'                => array( 'administrator' ),
     86                        'edit_files'                  => array( 'administrator' ),
     87                        'edit_plugins'                => array( 'administrator' ),
     88                        'edit_themes'                 => array( 'administrator' ),
     89                        'edit_users'                  => array( 'administrator' ),
     90                        'install_plugins'             => array( 'administrator' ),
     91                        'install_themes'              => array( 'administrator' ),
     92                        'update_core'                 => array( 'administrator' ),
     93                        'update_plugins'              => array( 'administrator' ),
     94                        'update_themes'               => array( 'administrator' ),
     95                        'edit_theme_options'          => array( 'administrator' ),
     96                        'export'                      => array( 'administrator' ),
     97                        'import'                      => array( 'administrator' ),
     98                        'list_users'                  => array( 'administrator' ),
     99                        'manage_options'              => array( 'administrator' ),
     100                        'promote_users'               => array( 'administrator' ),
     101                        'remove_users'                => array( 'administrator' ),
     102                        'switch_themes'               => array( 'administrator' ),
     103                        'edit_dashboard'              => array( 'administrator' ),
     104                        'resume_plugins'              => array( 'administrator' ),
     105                        'resume_themes'               => array( 'administrator' ),
     106                        'view_site_health_checks'     => array( 'administrator' ),
    107107
    108                         'moderate_comments'       => array( 'administrator', 'editor' ),
    109                         'manage_categories'       => array( 'administrator', 'editor' ),
    110                         'edit_others_posts'       => array( 'administrator', 'editor' ),
    111                         'edit_pages'              => array( 'administrator', 'editor' ),
    112                         'edit_others_pages'       => array( 'administrator', 'editor' ),
    113                         'edit_published_pages'    => array( 'administrator', 'editor' ),
    114                         'publish_pages'           => array( 'administrator', 'editor' ),
    115                         'delete_pages'            => array( 'administrator', 'editor' ),
    116                         'delete_others_pages'     => array( 'administrator', 'editor' ),
    117                         'delete_published_pages'  => array( 'administrator', 'editor' ),
    118                         'delete_others_posts'     => array( 'administrator', 'editor' ),
    119                         'delete_private_posts'    => array( 'administrator', 'editor' ),
    120                         'edit_private_posts'      => array( 'administrator', 'editor' ),
    121                         'read_private_posts'      => array( 'administrator', 'editor' ),
    122                         'delete_private_pages'    => array( 'administrator', 'editor' ),
    123                         'edit_private_pages'      => array( 'administrator', 'editor' ),
    124                         'read_private_pages'      => array( 'administrator', 'editor' ),
     108                        'manage_privacy_options'      => array( 'administrator', 'editor' ),
     109                        'export_others_personal_data' => array( 'administrator' ),
     110                        'erase_others_personal_data'  => array( 'administrator' ),
    125111
    126                         'edit_published_posts'    => array( 'administrator', 'editor', 'author' ),
    127                         'upload_files'            => array( 'administrator', 'editor', 'author' ),
    128                         'publish_posts'           => array( 'administrator', 'editor', 'author' ),
    129                         'delete_published_posts'  => array( 'administrator', 'editor', 'author' ),
     112                        'moderate_comments'           => array( 'administrator', 'editor' ),
     113                        'manage_categories'           => array( 'administrator', 'editor' ),
     114                        'edit_others_posts'           => array( 'administrator', 'editor' ),
     115                        'edit_pages'                  => array( 'administrator', 'editor' ),
     116                        'edit_others_pages'           => array( 'administrator', 'editor' ),
     117                        'edit_published_pages'        => array( 'administrator', 'editor' ),
     118                        'publish_pages'               => array( 'administrator', 'editor' ),
     119                        'delete_pages'                => array( 'administrator', 'editor' ),
     120                        'delete_others_pages'         => array( 'administrator', 'editor' ),
     121                        'delete_published_pages'      => array( 'administrator', 'editor' ),
     122                        'delete_others_posts'         => array( 'administrator', 'editor' ),
     123                        'delete_private_posts'        => array( 'administrator', 'editor' ),
     124                        'edit_private_posts'          => array( 'administrator', 'editor' ),
     125                        'read_private_posts'          => array( 'administrator', 'editor' ),
     126                        'delete_private_pages'        => array( 'administrator', 'editor' ),
     127                        'edit_private_pages'          => array( 'administrator', 'editor' ),
     128                        'read_private_pages'          => array( 'administrator', 'editor' ),
    130129
    131                         'edit_posts'              => array( 'administrator', 'editor', 'author', 'contributor' ),
    132                         'delete_posts'            => array( 'administrator', 'editor', 'author', 'contributor' ),
     130                        'edit_published_posts'        => array( 'administrator', 'editor', 'author' ),
     131                        'upload_files'                => array( 'administrator', 'editor', 'author' ),
     132                        'publish_posts'               => array( 'administrator', 'editor', 'author' ),
     133                        'delete_published_posts'      => array( 'administrator', 'editor', 'author' ),
    133134
    134                         'read'                    => array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' ),
     135                        'edit_posts'                  => array( 'administrator', 'editor', 'author', 'contributor' ),
     136                        'delete_posts'                => array( 'administrator', 'editor', 'author', 'contributor' ),
    135137
    136                         'level_10'                => array( 'administrator' ),
    137                         'level_9'                 => array( 'administrator' ),
    138                         'level_8'                 => array( 'administrator' ),
    139                         'level_7'                 => array( 'administrator', 'editor' ),
    140                         'level_6'                 => array( 'administrator', 'editor' ),
    141                         'level_5'                 => array( 'administrator', 'editor' ),
    142                         'level_4'                 => array( 'administrator', 'editor' ),
    143                         'level_3'                 => array( 'administrator', 'editor' ),
    144                         'level_2'                 => array( 'administrator', 'editor', 'author' ),
    145                         'level_1'                 => array( 'administrator', 'editor', 'author', 'contributor' ),
    146                         'level_0'                 => array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' ),
     138                        'read'                        => array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' ),
    147139
    148                         'administrator'           => array( 'administrator' ),
    149                         'editor'                  => array( 'editor' ),
    150                         'author'                  => array( 'author' ),
    151                         'contributor'             => array( 'contributor' ),
    152                         'subscriber'              => array( 'subscriber' ),
     140                        'level_10'                    => array( 'administrator' ),
     141                        'level_9'                     => array( 'administrator' ),
     142                        'level_8'                     => array( 'administrator' ),
     143                        'level_7'                     => array( 'administrator', 'editor' ),
     144                        'level_6'                     => array( 'administrator', 'editor' ),
     145                        'level_5'                     => array( 'administrator', 'editor' ),
     146                        'level_4'                     => array( 'administrator', 'editor' ),
     147                        'level_3'                     => array( 'administrator', 'editor' ),
     148                        'level_2'                     => array( 'administrator', 'editor', 'author' ),
     149                        'level_1'                     => array( 'administrator', 'editor', 'author', 'contributor' ),
     150                        'level_0'                     => array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' ),
    153151
     152                        'administrator'               => array( 'administrator' ),
     153                        'editor'                      => array( 'editor' ),
     154                        'author'                      => array( 'author' ),
     155                        'contributor'                 => array( 'contributor' ),
     156                        'subscriber'                  => array( 'subscriber' ),
     157
    154158                );
    155159
    156160        }
     
    158162        final private function _getMultiSitePrimitiveCaps() {
    159163                return array(
    160164
    161                         'unfiltered_html'         => array(),
     165                        'unfiltered_html'             => array(),
    162166
    163                         'activate_plugins'        => array(),
    164                         'create_users'            => array(),
    165                         'delete_plugins'          => array(),
    166                         'delete_themes'           => array(),
    167                         'delete_users'            => array(),
    168                         'edit_files'              => array(),
    169                         'edit_plugins'            => array(),
    170                         'edit_themes'             => array(),
    171                         'edit_users'              => array(),
    172                         'install_plugins'         => array(),
    173                         'install_themes'          => array(),
    174                         'update_core'             => array(),
    175                         'update_plugins'          => array(),
    176                         'update_themes'           => array(),
    177                         'view_site_health_checks' => array(),
     167                        'activate_plugins'            => array(),
     168                        'create_users'                => array(),
     169                        'delete_plugins'              => array(),
     170                        'delete_themes'               => array(),
     171                        'delete_users'                => array(),
     172                        'edit_files'                  => array(),
     173                        'edit_plugins'                => array(),
     174                        'edit_themes'                 => array(),
     175                        'edit_users'                  => array(),
     176                        'install_plugins'             => array(),
     177                        'install_themes'              => array(),
     178                        'update_core'                 => array(),
     179                        'update_plugins'              => array(),
     180                        'update_themes'               => array(),
     181                        'view_site_health_checks'     => array(),
    178182
    179                         'edit_theme_options'      => array( 'administrator' ),
    180                         'export'                  => array( 'administrator' ),
    181                         'import'                  => array( 'administrator' ),
    182                         'list_users'              => array( 'administrator' ),
    183                         'manage_options'          => array( 'administrator' ),
    184                         'promote_users'           => array( 'administrator' ),
    185                         'remove_users'            => array( 'administrator' ),
    186                         'switch_themes'           => array( 'administrator' ),
    187                         'edit_dashboard'          => array( 'administrator' ),
    188                         'resume_plugins'          => array( 'administrator' ),
    189                         'resume_themes'           => array( 'administrator' ),
     183                        'manage_privacy_options'      => array( 'administrator', 'editor' ),
     184                        'export_others_personal_data' => array( 'administrator' ),
     185                        'erase_others_personal_data'  => array( 'administrator' ),
    190186
    191                         'moderate_comments'       => array( 'administrator', 'editor' ),
    192                         'manage_categories'       => array( 'administrator', 'editor' ),
    193                         'edit_others_posts'       => array( 'administrator', 'editor' ),
    194                         'edit_pages'              => array( 'administrator', 'editor' ),
    195                         'edit_others_pages'       => array( 'administrator', 'editor' ),
    196                         'edit_published_pages'    => array( 'administrator', 'editor' ),
    197                         'publish_pages'           => array( 'administrator', 'editor' ),
    198                         'delete_pages'            => array( 'administrator', 'editor' ),
    199                         'delete_others_pages'     => array( 'administrator', 'editor' ),
    200                         'delete_published_pages'  => array( 'administrator', 'editor' ),
    201                         'delete_others_posts'     => array( 'administrator', 'editor' ),
    202                         'delete_private_posts'    => array( 'administrator', 'editor' ),
    203                         'edit_private_posts'      => array( 'administrator', 'editor' ),
    204                         'read_private_posts'      => array( 'administrator', 'editor' ),
    205                         'delete_private_pages'    => array( 'administrator', 'editor' ),
    206                         'edit_private_pages'      => array( 'administrator', 'editor' ),
    207                         'read_private_pages'      => array( 'administrator', 'editor' ),
     187                        'edit_theme_options'          => array( 'administrator' ),
     188                        'export'                      => array( 'administrator' ),
     189                        'import'                      => array( 'administrator' ),
     190                        'list_users'                  => array( 'administrator' ),
     191                        'manage_options'              => array( 'administrator' ),
     192                        'promote_users'               => array( 'administrator' ),
     193                        'remove_users'                => array( 'administrator' ),
     194                        'switch_themes'               => array( 'administrator' ),
     195                        'edit_dashboard'              => array( 'administrator' ),
     196                        'resume_plugins'              => array( 'administrator' ),
     197                        'resume_themes'               => array( 'administrator' ),
    208198
    209                         'edit_published_posts'    => array( 'administrator', 'editor', 'author' ),
    210                         'upload_files'            => array( 'administrator', 'editor', 'author' ),
    211                         'publish_posts'           => array( 'administrator', 'editor', 'author' ),
    212                         'delete_published_posts'  => array( 'administrator', 'editor', 'author' ),
     199                        'moderate_comments'           => array( 'administrator', 'editor' ),
     200                        'manage_categories'           => array( 'administrator', 'editor' ),
     201                        'edit_others_posts'           => array( 'administrator', 'editor' ),
     202                        'edit_pages'                  => array( 'administrator', 'editor' ),
     203                        'edit_others_pages'           => array( 'administrator', 'editor' ),
     204                        'edit_published_pages'        => array( 'administrator', 'editor' ),
     205                        'publish_pages'               => array( 'administrator', 'editor' ),
     206                        'delete_pages'                => array( 'administrator', 'editor' ),
     207                        'delete_others_pages'         => array( 'administrator', 'editor' ),
     208                        'delete_published_pages'      => array( 'administrator', 'editor' ),
     209                        'delete_others_posts'         => array( 'administrator', 'editor' ),
     210                        'delete_private_posts'        => array( 'administrator', 'editor' ),
     211                        'edit_private_posts'          => array( 'administrator', 'editor' ),
     212                        'read_private_posts'          => array( 'administrator', 'editor' ),
     213                        'delete_private_pages'        => array( 'administrator', 'editor' ),
     214                        'edit_private_pages'          => array( 'administrator', 'editor' ),
     215                        'read_private_pages'          => array( 'administrator', 'editor' ),
    213216
    214                         'edit_posts'              => array( 'administrator', 'editor', 'author', 'contributor' ),
    215                         'delete_posts'            => array( 'administrator', 'editor', 'author', 'contributor' ),
     217                        'edit_published_posts'        => array( 'administrator', 'editor', 'author' ),
     218                        'upload_files'                => array( 'administrator', 'editor', 'author' ),
     219                        'publish_posts'               => array( 'administrator', 'editor', 'author' ),
     220                        'delete_published_posts'      => array( 'administrator', 'editor', 'author' ),
    216221
    217                         'read'                    => array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' ),
     222                        'edit_posts'                  => array( 'administrator', 'editor', 'author', 'contributor' ),
     223                        'delete_posts'                => array( 'administrator', 'editor', 'author', 'contributor' ),
    218224
    219                         'level_10'                => array( 'administrator' ),
    220                         'level_9'                 => array( 'administrator' ),
    221                         'level_8'                 => array( 'administrator' ),
    222                         'level_7'                 => array( 'administrator', 'editor' ),
    223                         'level_6'                 => array( 'administrator', 'editor' ),
    224                         'level_5'                 => array( 'administrator', 'editor' ),
    225                         'level_4'                 => array( 'administrator', 'editor' ),
    226                         'level_3'                 => array( 'administrator', 'editor' ),
    227                         'level_2'                 => array( 'administrator', 'editor', 'author' ),
    228                         'level_1'                 => array( 'administrator', 'editor', 'author', 'contributor' ),
    229                         'level_0'                 => array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' ),
     225                        'read'                        => array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' ),
    230226
    231                         'administrator'           => array( 'administrator' ),
    232                         'editor'                  => array( 'editor' ),
    233                         'author'                  => array( 'author' ),
    234                         'contributor'             => array( 'contributor' ),
    235                         'subscriber'              => array( 'subscriber' ),
     227                        'level_10'                    => array( 'administrator' ),
     228                        'level_9'                     => array( 'administrator' ),
     229                        'level_8'                     => array( 'administrator' ),
     230                        'level_7'                     => array( 'administrator', 'editor' ),
     231                        'level_6'                     => array( 'administrator', 'editor' ),
     232                        'level_5'                     => array( 'administrator', 'editor' ),
     233                        'level_4'                     => array( 'administrator', 'editor' ),
     234                        'level_3'                     => array( 'administrator', 'editor' ),
     235                        'level_2'                     => array( 'administrator', 'editor', 'author' ),
     236                        'level_1'                     => array( 'administrator', 'editor', 'author', 'contributor' ),
     237                        'level_0'                     => array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' ),
    236238
     239                        'administrator'               => array( 'administrator' ),
     240                        'editor'                      => array( 'editor' ),
     241                        'author'                      => array( 'author' ),
     242                        'contributor'                 => array( 'contributor' ),
     243                        'subscriber'                  => array( 'subscriber' ),
     244
    237245                );
    238246
    239247        }
    240248
    241249        final private function _getSingleSiteMetaCaps() {
    242250                return array(
    243                         'create_sites'                => array(),
    244                         'delete_sites'                => array(),
    245                         'manage_network'              => array(),
    246                         'manage_sites'                => array(),
    247                         'manage_network_users'        => array(),
    248                         'manage_network_plugins'      => array(),
    249                         'manage_network_themes'       => array(),
    250                         'manage_network_options'      => array(),
    251                         'delete_site'                 => array(),
    252                         'upgrade_network'             => array(),
     251                        'create_sites'           => array(),
     252                        'delete_sites'           => array(),
     253                        'manage_network'         => array(),
     254                        'manage_sites'           => array(),
     255                        'manage_network_users'   => array(),
     256                        'manage_network_plugins' => array(),
     257                        'manage_network_themes'  => array(),
     258                        'manage_network_options' => array(),
     259                        'delete_site'            => array(),
     260                        'upgrade_network'        => array(),
    253261
    254                         'setup_network'               => array( 'administrator' ),
    255                         'upload_plugins'              => array( 'administrator' ),
    256                         'upload_themes'               => array( 'administrator' ),
    257                         'customize'                   => array( 'administrator' ),
    258                         'add_users'                   => array( 'administrator' ),
    259                         'install_languages'           => array( 'administrator' ),
    260                         'update_languages'            => array( 'administrator' ),
    261                         'deactivate_plugins'          => array( 'administrator' ),
    262                         'update_php'                  => array( 'administrator' ),
    263                         'export_others_personal_data' => array( 'administrator' ),
    264                         'erase_others_personal_data'  => array( 'administrator' ),
    265                         'manage_privacy_options'      => array( 'administrator' ),
     262                        'setup_network'          => array( 'administrator' ),
     263                        'upload_plugins'         => array( 'administrator' ),
     264                        'upload_themes'          => array( 'administrator' ),
     265                        'customize'              => array( 'administrator' ),
     266                        'add_users'              => array( 'administrator' ),
     267                        'install_languages'      => array( 'administrator' ),
     268                        'update_languages'       => array( 'administrator' ),
     269                        'deactivate_plugins'     => array( 'administrator' ),
     270                        'update_php'             => array( 'administrator' ),
    266271
    267                         'edit_categories'             => array( 'administrator', 'editor' ),
    268                         'delete_categories'           => array( 'administrator', 'editor' ),
    269                         'manage_post_tags'            => array( 'administrator', 'editor' ),
    270                         'edit_post_tags'              => array( 'administrator', 'editor' ),
    271                         'delete_post_tags'            => array( 'administrator', 'editor' ),
    272                         'edit_css'                    => array( 'administrator', 'editor' ),
     272                        'edit_categories'        => array( 'administrator', 'editor' ),
     273                        'delete_categories'      => array( 'administrator', 'editor' ),
     274                        'manage_post_tags'       => array( 'administrator', 'editor' ),
     275                        'edit_post_tags'         => array( 'administrator', 'editor' ),
     276                        'delete_post_tags'       => array( 'administrator', 'editor' ),
     277                        'edit_css'               => array( 'administrator', 'editor' ),
    273278
    274                         'assign_categories'           => array( 'administrator', 'editor', 'author', 'contributor' ),
    275                         'assign_post_tags'            => array( 'administrator', 'editor', 'author', 'contributor' ),
     279                        'assign_categories'      => array( 'administrator', 'editor', 'author', 'contributor' ),
     280                        'assign_post_tags'       => array( 'administrator', 'editor', 'author', 'contributor' ),
    276281                );
    277282        }
    278283
    279284        final private function _getMultiSiteMetaCaps() {
    280285                return array(
    281                         'create_sites'                => array(),
    282                         'delete_sites'                => array(),
    283                         'manage_network'              => array(),
    284                         'manage_sites'                => array(),
    285                         'manage_network_users'        => array(),
    286                         'manage_network_plugins'      => array(),
    287                         'manage_network_themes'       => array(),
    288                         'manage_network_options'      => array(),
    289                         'setup_network'               => array(),
    290                         'upload_plugins'              => array(),
    291                         'upload_themes'               => array(),
    292                         'edit_css'                    => array(),
    293                         'upgrade_network'             => array(),
    294                         'install_languages'           => array(),
    295                         'update_languages'            => array(),
    296                         'deactivate_plugins'          => array(),
    297                         'update_php'                  => array(),
    298                         'export_others_personal_data' => array( '' ),
    299                         'erase_others_personal_data'  => array( '' ),
    300                         'manage_privacy_options'      => array(),
     286                        'create_sites'           => array(),
     287                        'delete_sites'           => array(),
     288                        'manage_network'         => array(),
     289                        'manage_sites'           => array(),
     290                        'manage_network_users'   => array(),
     291                        'manage_network_plugins' => array(),
     292                        'manage_network_themes'  => array(),
     293                        'manage_network_options' => array(),
     294                        'setup_network'          => array(),
     295                        'upload_plugins'         => array(),
     296                        'upload_themes'          => array(),
     297                        'edit_css'               => array(),
     298                        'upgrade_network'        => array(),
     299                        'install_languages'      => array(),
     300                        'update_languages'       => array(),
     301                        'deactivate_plugins'     => array(),
     302                        'update_php'             => array(),
    301303
    302                         'customize'                   => array( 'administrator' ),
    303                         'delete_site'                 => array( 'administrator' ),
    304                         'add_users'                   => array( 'administrator' ),
     304                        'customize'              => array( 'administrator' ),
     305                        'delete_site'            => array( 'administrator' ),
     306                        'add_users'              => array( 'administrator' ),
    305307
    306                         'edit_categories'             => array( 'administrator', 'editor' ),
    307                         'delete_categories'           => array( 'administrator', 'editor' ),
    308                         'manage_post_tags'            => array( 'administrator', 'editor' ),
    309                         'edit_post_tags'              => array( 'administrator', 'editor' ),
    310                         'delete_post_tags'            => array( 'administrator', 'editor' ),
     308                        'edit_categories'        => array( 'administrator', 'editor' ),
     309                        'delete_categories'      => array( 'administrator', 'editor' ),
     310                        'manage_post_tags'       => array( 'administrator', 'editor' ),
     311                        'edit_post_tags'         => array( 'administrator', 'editor' ),
     312                        'delete_post_tags'       => array( 'administrator', 'editor' ),
    311313
    312                         'assign_categories'           => array( 'administrator', 'editor', 'author', 'contributor' ),
    313                         'assign_post_tags'            => array( 'administrator', 'editor', 'author', 'contributor' ),
     314                        'assign_categories'      => array( 'administrator', 'editor', 'author', 'contributor' ),
     315                        'assign_post_tags'       => array( 'administrator', 'editor', 'author', 'contributor' ),
    314316                );
    315317        }
    316318