From f97a60c9b73e67154ce290db977a9b0ece21a9dd Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Tue, 11 Feb 2020 21:46:54 +0000 Subject: [PATCH] Privacy: Revert [47269] for now to address side effects on Multisite installations. See #44176. git-svn-id: https://develop.svn.wordpress.org/trunk@47280 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-admin/includes/schema.php | 22 -- src/wp-admin/includes/upgrade.php | 20 -- src/wp-admin/menu.php | 6 +- src/wp-includes/capabilities.php | 9 +- src/wp-includes/version.php | 2 +- tests/phpunit/tests/user/capabilities.php | 390 +++++++++++----------- 6 files changed, 203 insertions(+), 246 deletions(-) diff --git a/src/wp-admin/includes/schema.php b/src/wp-admin/includes/schema.php index 6b93eebfd0..bb993f2617 100644 --- a/src/wp-admin/includes/schema.php +++ b/src/wp-admin/includes/schema.php @@ -695,7 +695,6 @@ function populate_roles() { populate_roles_270(); populate_roles_280(); populate_roles_300(); - populate_roles_540(); } /** @@ -924,27 +923,6 @@ function populate_roles_300() { } } -/** - * Create and modify WordPress roles for WordPress 5.4.0. - * - * @since 5.4.0 - */ -function populate_roles_540() { - // Add the privacy caps to the Administrators. - $role = get_role( 'administrator' ); - - if ( ! empty( $role ) ) { - $role->add_cap( 'export_others_personal_data' ); - $role->add_cap( 'erase_others_personal_data' ); - $role->add_cap( 'manage_privacy_options' ); - } - - $role = get_role( 'editor' ); - if ( ! empty( $role ) ) { - $role->add_cap( 'manage_privacy_options' ); - } -} - if ( ! function_exists( 'install_network' ) ) : /** * Install Network. diff --git a/src/wp-admin/includes/upgrade.php b/src/wp-admin/includes/upgrade.php index e276dc28ec..26614c9634 100644 --- a/src/wp-admin/includes/upgrade.php +++ b/src/wp-admin/includes/upgrade.php @@ -834,10 +834,6 @@ function upgrade_all() { upgrade_530(); } - if ( $wp_current_db_version < 47269 ) { - upgrade_540(); - } - maybe_disable_link_manager(); maybe_disable_automattic_widgets(); @@ -2158,22 +2154,6 @@ function upgrade_530() { } } -/** - * Executes changes made in WordPress 5.4.0. - * - * @ignore - * @since 5.4.0 - * - * @global int $wp_current_db_version The old (current) database version. - */ -function upgrade_540() { - global $wp_current_db_version; - - if ( $wp_current_db_version < 47269 ) { - populate_roles_540(); - } -} - /** * Executes network-level upgrade routines. * diff --git a/src/wp-admin/menu.php b/src/wp-admin/menu.php index 22ec163c01..77cf7d68bd 100644 --- a/src/wp-admin/menu.php +++ b/src/wp-admin/menu.php @@ -288,11 +288,7 @@ if ( ! is_multisite() && defined( 'WP_ALLOW_MULTISITE' ) && WP_ALLOW_MULTISITE ) $submenu['tools.php'][50] = array( __( 'Network Setup' ), 'setup_network', 'network.php' ); } -$menu[80] = array( __( 'Settings' ), 'manage_options', 'options-general.php', '', 'menu-top menu-icon-settings', 'menu-settings', 'dashicons-admin-settings' ); -if ( current_user_can( 'manage_privacy_options' ) && ! current_user_can( 'manage_options' ) ) { - $menu[80] = array( __( 'Settings' ), 'manage_privacy_options', 'options-privacy.php', '', 'menu-top menu-icon-settings', 'menu-settings', 'dashicons-admin-settings' ); -} - +$menu[80] = array( __( 'Settings' ), 'manage_options', 'options-general.php', '', 'menu-top menu-icon-settings', 'menu-settings', 'dashicons-admin-settings' ); $submenu['options-general.php'][10] = array( _x( 'General', 'settings screen' ), 'manage_options', 'options-general.php' ); $submenu['options-general.php'][15] = array( __( 'Writing' ), 'manage_options', 'options-writing.php' ); $submenu['options-general.php'][20] = array( __( 'Reading' ), 'manage_options', 'options-reading.php' ); diff --git a/src/wp-includes/capabilities.php b/src/wp-includes/capabilities.php index 1790770a5c..f48cb58968 100644 --- a/src/wp-includes/capabilities.php +++ b/src/wp-includes/capabilities.php @@ -132,7 +132,7 @@ function map_meta_cap( $cap, $user_id, ...$args ) { * so deleting it should require that too. */ if ( (int) get_option( 'wp_page_for_privacy_policy' ) === $post->ID ) { - $caps[] = 'manage_privacy_options'; + $caps = array_merge( $caps, map_meta_cap( 'manage_privacy_options', $user_id ) ); } break; @@ -203,7 +203,7 @@ function map_meta_cap( $cap, $user_id, ...$args ) { * so editing it should require that too. */ if ( (int) get_option( 'wp_page_for_privacy_policy' ) === $post->ID ) { - $caps[] = 'manage_privacy_options'; + $caps = array_merge( $caps, map_meta_cap( 'manage_privacy_options', $user_id ) ); } break; @@ -580,6 +580,11 @@ function map_meta_cap( $cap, $user_id, ...$args ) { $caps[] = 'update_core'; } break; + case 'export_others_personal_data': + case 'erase_others_personal_data': + case 'manage_privacy_options': + $caps[] = is_multisite() ? 'manage_network' : 'manage_options'; + break; default: // Handle meta capabilities for custom post types. global $post_type_meta_caps; diff --git a/src/wp-includes/version.php b/src/wp-includes/version.php index 756927fc4a..f02bf520bd 100644 --- a/src/wp-includes/version.php +++ b/src/wp-includes/version.php @@ -20,7 +20,7 @@ $wp_version = '5.4-alpha-46582-src'; * * @global int $wp_db_version */ -$wp_db_version = 47269; +$wp_db_version = 47018; /** * Holds the TinyMCE version. diff --git a/tests/phpunit/tests/user/capabilities.php b/tests/phpunit/tests/user/capabilities.php index 03fe335717..a5b7f3c55d 100644 --- a/tests/phpunit/tests/user/capabilities.php +++ b/tests/phpunit/tests/user/capabilities.php @@ -76,84 +76,80 @@ class Tests_User_Capabilities extends WP_UnitTestCase { final private function _getSingleSitePrimitiveCaps() { return array( - 'unfiltered_html' => array( 'administrator', 'editor' ), + 'unfiltered_html' => array( 'administrator', 'editor' ), - 'activate_plugins' => array( 'administrator' ), - 'create_users' => array( 'administrator' ), - 'delete_plugins' => array( 'administrator' ), - 'delete_themes' => array( 'administrator' ), - 'delete_users' => array( 'administrator' ), - 'edit_files' => array( 'administrator' ), - 'edit_plugins' => array( 'administrator' ), - 'edit_themes' => array( 'administrator' ), - 'edit_users' => array( 'administrator' ), - 'install_plugins' => array( 'administrator' ), - 'install_themes' => array( 'administrator' ), - 'update_core' => array( 'administrator' ), - 'update_plugins' => array( 'administrator' ), - 'update_themes' => array( 'administrator' ), - 'edit_theme_options' => array( 'administrator' ), - 'export' => array( 'administrator' ), - 'import' => array( 'administrator' ), - 'list_users' => array( 'administrator' ), - 'manage_options' => array( 'administrator' ), - 'promote_users' => array( 'administrator' ), - 'remove_users' => array( 'administrator' ), - 'switch_themes' => array( 'administrator' ), - 'edit_dashboard' => array( 'administrator' ), - 'resume_plugins' => array( 'administrator' ), - 'resume_themes' => array( 'administrator' ), - 'view_site_health_checks' => array( 'administrator' ), + 'activate_plugins' => array( 'administrator' ), + 'create_users' => array( 'administrator' ), + 'delete_plugins' => array( 'administrator' ), + 'delete_themes' => array( 'administrator' ), + 'delete_users' => array( 'administrator' ), + 'edit_files' => array( 'administrator' ), + 'edit_plugins' => array( 'administrator' ), + 'edit_themes' => array( 'administrator' ), + 'edit_users' => array( 'administrator' ), + 'install_plugins' => array( 'administrator' ), + 'install_themes' => array( 'administrator' ), + 'update_core' => array( 'administrator' ), + 'update_plugins' => array( 'administrator' ), + 'update_themes' => array( 'administrator' ), + 'edit_theme_options' => array( 'administrator' ), + 'export' => array( 'administrator' ), + 'import' => array( 'administrator' ), + 'list_users' => array( 'administrator' ), + 'manage_options' => array( 'administrator' ), + 'promote_users' => array( 'administrator' ), + 'remove_users' => array( 'administrator' ), + 'switch_themes' => array( 'administrator' ), + 'edit_dashboard' => array( 'administrator' ), + 'resume_plugins' => array( 'administrator' ), + 'resume_themes' => array( 'administrator' ), + 'view_site_health_checks' => array( 'administrator' ), - 'manage_privacy_options' => array( 'administrator', 'editor' ), - 'export_others_personal_data' => array( 'administrator' ), - 'erase_others_personal_data' => array( 'administrator' ), + 'moderate_comments' => array( 'administrator', 'editor' ), + 'manage_categories' => array( 'administrator', 'editor' ), + 'edit_others_posts' => array( 'administrator', 'editor' ), + 'edit_pages' => array( 'administrator', 'editor' ), + 'edit_others_pages' => array( 'administrator', 'editor' ), + 'edit_published_pages' => array( 'administrator', 'editor' ), + 'publish_pages' => array( 'administrator', 'editor' ), + 'delete_pages' => array( 'administrator', 'editor' ), + 'delete_others_pages' => array( 'administrator', 'editor' ), + 'delete_published_pages' => array( 'administrator', 'editor' ), + 'delete_others_posts' => array( 'administrator', 'editor' ), + 'delete_private_posts' => array( 'administrator', 'editor' ), + 'edit_private_posts' => array( 'administrator', 'editor' ), + 'read_private_posts' => array( 'administrator', 'editor' ), + 'delete_private_pages' => array( 'administrator', 'editor' ), + 'edit_private_pages' => array( 'administrator', 'editor' ), + 'read_private_pages' => array( 'administrator', 'editor' ), - 'moderate_comments' => array( 'administrator', 'editor' ), - 'manage_categories' => array( 'administrator', 'editor' ), - 'edit_others_posts' => array( 'administrator', 'editor' ), - 'edit_pages' => array( 'administrator', 'editor' ), - 'edit_others_pages' => array( 'administrator', 'editor' ), - 'edit_published_pages' => array( 'administrator', 'editor' ), - 'publish_pages' => array( 'administrator', 'editor' ), - 'delete_pages' => array( 'administrator', 'editor' ), - 'delete_others_pages' => array( 'administrator', 'editor' ), - 'delete_published_pages' => array( 'administrator', 'editor' ), - 'delete_others_posts' => array( 'administrator', 'editor' ), - 'delete_private_posts' => array( 'administrator', 'editor' ), - 'edit_private_posts' => array( 'administrator', 'editor' ), - 'read_private_posts' => array( 'administrator', 'editor' ), - 'delete_private_pages' => array( 'administrator', 'editor' ), - 'edit_private_pages' => array( 'administrator', 'editor' ), - 'read_private_pages' => array( 'administrator', 'editor' ), + 'edit_published_posts' => array( 'administrator', 'editor', 'author' ), + 'upload_files' => array( 'administrator', 'editor', 'author' ), + 'publish_posts' => array( 'administrator', 'editor', 'author' ), + 'delete_published_posts' => array( 'administrator', 'editor', 'author' ), - 'edit_published_posts' => array( 'administrator', 'editor', 'author' ), - 'upload_files' => array( 'administrator', 'editor', 'author' ), - 'publish_posts' => array( 'administrator', 'editor', 'author' ), - 'delete_published_posts' => array( 'administrator', 'editor', 'author' ), + 'edit_posts' => array( 'administrator', 'editor', 'author', 'contributor' ), + 'delete_posts' => array( 'administrator', 'editor', 'author', 'contributor' ), - 'edit_posts' => array( 'administrator', 'editor', 'author', 'contributor' ), - 'delete_posts' => array( 'administrator', 'editor', 'author', 'contributor' ), + 'read' => array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' ), - 'read' => array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' ), + 'level_10' => array( 'administrator' ), + 'level_9' => array( 'administrator' ), + 'level_8' => array( 'administrator' ), + 'level_7' => array( 'administrator', 'editor' ), + 'level_6' => array( 'administrator', 'editor' ), + 'level_5' => array( 'administrator', 'editor' ), + 'level_4' => array( 'administrator', 'editor' ), + 'level_3' => array( 'administrator', 'editor' ), + 'level_2' => array( 'administrator', 'editor', 'author' ), + 'level_1' => array( 'administrator', 'editor', 'author', 'contributor' ), + 'level_0' => array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' ), - 'level_10' => array( 'administrator' ), - 'level_9' => array( 'administrator' ), - 'level_8' => array( 'administrator' ), - 'level_7' => array( 'administrator', 'editor' ), - 'level_6' => array( 'administrator', 'editor' ), - 'level_5' => array( 'administrator', 'editor' ), - 'level_4' => array( 'administrator', 'editor' ), - 'level_3' => array( 'administrator', 'editor' ), - 'level_2' => array( 'administrator', 'editor', 'author' ), - 'level_1' => array( 'administrator', 'editor', 'author', 'contributor' ), - 'level_0' => array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' ), - - 'administrator' => array( 'administrator' ), - 'editor' => array( 'editor' ), - 'author' => array( 'author' ), - 'contributor' => array( 'contributor' ), - 'subscriber' => array( 'subscriber' ), + 'administrator' => array( 'administrator' ), + 'editor' => array( 'editor' ), + 'author' => array( 'author' ), + 'contributor' => array( 'contributor' ), + 'subscriber' => array( 'subscriber' ), ); @@ -162,85 +158,81 @@ class Tests_User_Capabilities extends WP_UnitTestCase { final private function _getMultiSitePrimitiveCaps() { return array( - 'unfiltered_html' => array(), + 'unfiltered_html' => array(), - 'activate_plugins' => array(), - 'create_users' => array(), - 'delete_plugins' => array(), - 'delete_themes' => array(), - 'delete_users' => array(), - 'edit_files' => array(), - 'edit_plugins' => array(), - 'edit_themes' => array(), - 'edit_users' => array(), - 'install_plugins' => array(), - 'install_themes' => array(), - 'update_core' => array(), - 'update_plugins' => array(), - 'update_themes' => array(), - 'view_site_health_checks' => array(), + 'activate_plugins' => array(), + 'create_users' => array(), + 'delete_plugins' => array(), + 'delete_themes' => array(), + 'delete_users' => array(), + 'edit_files' => array(), + 'edit_plugins' => array(), + 'edit_themes' => array(), + 'edit_users' => array(), + 'install_plugins' => array(), + 'install_themes' => array(), + 'update_core' => array(), + 'update_plugins' => array(), + 'update_themes' => array(), + 'view_site_health_checks' => array(), - 'manage_privacy_options' => array( 'administrator', 'editor' ), - 'export_others_personal_data' => array( 'administrator' ), - 'erase_others_personal_data' => array( 'administrator' ), + 'edit_theme_options' => array( 'administrator' ), + 'export' => array( 'administrator' ), + 'import' => array( 'administrator' ), + 'list_users' => array( 'administrator' ), + 'manage_options' => array( 'administrator' ), + 'promote_users' => array( 'administrator' ), + 'remove_users' => array( 'administrator' ), + 'switch_themes' => array( 'administrator' ), + 'edit_dashboard' => array( 'administrator' ), + 'resume_plugins' => array( 'administrator' ), + 'resume_themes' => array( 'administrator' ), - 'edit_theme_options' => array( 'administrator' ), - 'export' => array( 'administrator' ), - 'import' => array( 'administrator' ), - 'list_users' => array( 'administrator' ), - 'manage_options' => array( 'administrator' ), - 'promote_users' => array( 'administrator' ), - 'remove_users' => array( 'administrator' ), - 'switch_themes' => array( 'administrator' ), - 'edit_dashboard' => array( 'administrator' ), - 'resume_plugins' => array( 'administrator' ), - 'resume_themes' => array( 'administrator' ), + 'moderate_comments' => array( 'administrator', 'editor' ), + 'manage_categories' => array( 'administrator', 'editor' ), + 'edit_others_posts' => array( 'administrator', 'editor' ), + 'edit_pages' => array( 'administrator', 'editor' ), + 'edit_others_pages' => array( 'administrator', 'editor' ), + 'edit_published_pages' => array( 'administrator', 'editor' ), + 'publish_pages' => array( 'administrator', 'editor' ), + 'delete_pages' => array( 'administrator', 'editor' ), + 'delete_others_pages' => array( 'administrator', 'editor' ), + 'delete_published_pages' => array( 'administrator', 'editor' ), + 'delete_others_posts' => array( 'administrator', 'editor' ), + 'delete_private_posts' => array( 'administrator', 'editor' ), + 'edit_private_posts' => array( 'administrator', 'editor' ), + 'read_private_posts' => array( 'administrator', 'editor' ), + 'delete_private_pages' => array( 'administrator', 'editor' ), + 'edit_private_pages' => array( 'administrator', 'editor' ), + 'read_private_pages' => array( 'administrator', 'editor' ), - 'moderate_comments' => array( 'administrator', 'editor' ), - 'manage_categories' => array( 'administrator', 'editor' ), - 'edit_others_posts' => array( 'administrator', 'editor' ), - 'edit_pages' => array( 'administrator', 'editor' ), - 'edit_others_pages' => array( 'administrator', 'editor' ), - 'edit_published_pages' => array( 'administrator', 'editor' ), - 'publish_pages' => array( 'administrator', 'editor' ), - 'delete_pages' => array( 'administrator', 'editor' ), - 'delete_others_pages' => array( 'administrator', 'editor' ), - 'delete_published_pages' => array( 'administrator', 'editor' ), - 'delete_others_posts' => array( 'administrator', 'editor' ), - 'delete_private_posts' => array( 'administrator', 'editor' ), - 'edit_private_posts' => array( 'administrator', 'editor' ), - 'read_private_posts' => array( 'administrator', 'editor' ), - 'delete_private_pages' => array( 'administrator', 'editor' ), - 'edit_private_pages' => array( 'administrator', 'editor' ), - 'read_private_pages' => array( 'administrator', 'editor' ), + 'edit_published_posts' => array( 'administrator', 'editor', 'author' ), + 'upload_files' => array( 'administrator', 'editor', 'author' ), + 'publish_posts' => array( 'administrator', 'editor', 'author' ), + 'delete_published_posts' => array( 'administrator', 'editor', 'author' ), - 'edit_published_posts' => array( 'administrator', 'editor', 'author' ), - 'upload_files' => array( 'administrator', 'editor', 'author' ), - 'publish_posts' => array( 'administrator', 'editor', 'author' ), - 'delete_published_posts' => array( 'administrator', 'editor', 'author' ), + 'edit_posts' => array( 'administrator', 'editor', 'author', 'contributor' ), + 'delete_posts' => array( 'administrator', 'editor', 'author', 'contributor' ), - 'edit_posts' => array( 'administrator', 'editor', 'author', 'contributor' ), - 'delete_posts' => array( 'administrator', 'editor', 'author', 'contributor' ), + 'read' => array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' ), - 'read' => array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' ), + 'level_10' => array( 'administrator' ), + 'level_9' => array( 'administrator' ), + 'level_8' => array( 'administrator' ), + 'level_7' => array( 'administrator', 'editor' ), + 'level_6' => array( 'administrator', 'editor' ), + 'level_5' => array( 'administrator', 'editor' ), + 'level_4' => array( 'administrator', 'editor' ), + 'level_3' => array( 'administrator', 'editor' ), + 'level_2' => array( 'administrator', 'editor', 'author' ), + 'level_1' => array( 'administrator', 'editor', 'author', 'contributor' ), + 'level_0' => array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' ), - 'level_10' => array( 'administrator' ), - 'level_9' => array( 'administrator' ), - 'level_8' => array( 'administrator' ), - 'level_7' => array( 'administrator', 'editor' ), - 'level_6' => array( 'administrator', 'editor' ), - 'level_5' => array( 'administrator', 'editor' ), - 'level_4' => array( 'administrator', 'editor' ), - 'level_3' => array( 'administrator', 'editor' ), - 'level_2' => array( 'administrator', 'editor', 'author' ), - 'level_1' => array( 'administrator', 'editor', 'author', 'contributor' ), - 'level_0' => array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' ), - - 'administrator' => array( 'administrator' ), - 'editor' => array( 'editor' ), - 'author' => array( 'author' ), - 'contributor' => array( 'contributor' ), - 'subscriber' => array( 'subscriber' ), + 'administrator' => array( 'administrator' ), + 'editor' => array( 'editor' ), + 'author' => array( 'author' ), + 'contributor' => array( 'contributor' ), + 'subscriber' => array( 'subscriber' ), ); @@ -248,71 +240,77 @@ class Tests_User_Capabilities extends WP_UnitTestCase { final private function _getSingleSiteMetaCaps() { return array( - 'create_sites' => array(), - 'delete_sites' => array(), - 'manage_network' => array(), - 'manage_sites' => array(), - 'manage_network_users' => array(), - 'manage_network_plugins' => array(), - 'manage_network_themes' => array(), - 'manage_network_options' => array(), - 'delete_site' => array(), - 'upgrade_network' => array(), + 'create_sites' => array(), + 'delete_sites' => array(), + 'manage_network' => array(), + 'manage_sites' => array(), + 'manage_network_users' => array(), + 'manage_network_plugins' => array(), + 'manage_network_themes' => array(), + 'manage_network_options' => array(), + 'delete_site' => array(), + 'upgrade_network' => array(), - 'setup_network' => array( 'administrator' ), - 'upload_plugins' => array( 'administrator' ), - 'upload_themes' => array( 'administrator' ), - 'customize' => array( 'administrator' ), - 'add_users' => array( 'administrator' ), - 'install_languages' => array( 'administrator' ), - 'update_languages' => array( 'administrator' ), - 'deactivate_plugins' => array( 'administrator' ), - 'update_php' => array( 'administrator' ), + 'setup_network' => array( 'administrator' ), + 'upload_plugins' => array( 'administrator' ), + 'upload_themes' => array( 'administrator' ), + 'customize' => array( 'administrator' ), + 'add_users' => array( 'administrator' ), + 'install_languages' => array( 'administrator' ), + 'update_languages' => array( 'administrator' ), + 'deactivate_plugins' => array( 'administrator' ), + 'update_php' => array( 'administrator' ), + 'export_others_personal_data' => array( 'administrator' ), + 'erase_others_personal_data' => array( 'administrator' ), + 'manage_privacy_options' => array( 'administrator' ), - 'edit_categories' => array( 'administrator', 'editor' ), - 'delete_categories' => array( 'administrator', 'editor' ), - 'manage_post_tags' => array( 'administrator', 'editor' ), - 'edit_post_tags' => array( 'administrator', 'editor' ), - 'delete_post_tags' => array( 'administrator', 'editor' ), - 'edit_css' => array( 'administrator', 'editor' ), + 'edit_categories' => array( 'administrator', 'editor' ), + 'delete_categories' => array( 'administrator', 'editor' ), + 'manage_post_tags' => array( 'administrator', 'editor' ), + 'edit_post_tags' => array( 'administrator', 'editor' ), + 'delete_post_tags' => array( 'administrator', 'editor' ), + 'edit_css' => array( 'administrator', 'editor' ), - 'assign_categories' => array( 'administrator', 'editor', 'author', 'contributor' ), - 'assign_post_tags' => array( 'administrator', 'editor', 'author', 'contributor' ), + 'assign_categories' => array( 'administrator', 'editor', 'author', 'contributor' ), + 'assign_post_tags' => array( 'administrator', 'editor', 'author', 'contributor' ), ); } final private function _getMultiSiteMetaCaps() { return array( - 'create_sites' => array(), - 'delete_sites' => array(), - 'manage_network' => array(), - 'manage_sites' => array(), - 'manage_network_users' => array(), - 'manage_network_plugins' => array(), - 'manage_network_themes' => array(), - 'manage_network_options' => array(), - 'setup_network' => array(), - 'upload_plugins' => array(), - 'upload_themes' => array(), - 'edit_css' => array(), - 'upgrade_network' => array(), - 'install_languages' => array(), - 'update_languages' => array(), - 'deactivate_plugins' => array(), - 'update_php' => array(), + 'create_sites' => array(), + 'delete_sites' => array(), + 'manage_network' => array(), + 'manage_sites' => array(), + 'manage_network_users' => array(), + 'manage_network_plugins' => array(), + 'manage_network_themes' => array(), + 'manage_network_options' => array(), + 'setup_network' => array(), + 'upload_plugins' => array(), + 'upload_themes' => array(), + 'edit_css' => array(), + 'upgrade_network' => array(), + 'install_languages' => array(), + 'update_languages' => array(), + 'deactivate_plugins' => array(), + 'update_php' => array(), + 'export_others_personal_data' => array( '' ), + 'erase_others_personal_data' => array( '' ), + 'manage_privacy_options' => array(), - 'customize' => array( 'administrator' ), - 'delete_site' => array( 'administrator' ), - 'add_users' => array( 'administrator' ), + 'customize' => array( 'administrator' ), + 'delete_site' => array( 'administrator' ), + 'add_users' => array( 'administrator' ), - 'edit_categories' => array( 'administrator', 'editor' ), - 'delete_categories' => array( 'administrator', 'editor' ), - 'manage_post_tags' => array( 'administrator', 'editor' ), - 'edit_post_tags' => array( 'administrator', 'editor' ), - 'delete_post_tags' => array( 'administrator', 'editor' ), + 'edit_categories' => array( 'administrator', 'editor' ), + 'delete_categories' => array( 'administrator', 'editor' ), + 'manage_post_tags' => array( 'administrator', 'editor' ), + 'edit_post_tags' => array( 'administrator', 'editor' ), + 'delete_post_tags' => array( 'administrator', 'editor' ), - 'assign_categories' => array( 'administrator', 'editor', 'author', 'contributor' ), - 'assign_post_tags' => array( 'administrator', 'editor', 'author', 'contributor' ), + 'assign_categories' => array( 'administrator', 'editor', 'author', 'contributor' ), + 'assign_post_tags' => array( 'administrator', 'editor', 'author', 'contributor' ), ); }