diff --git a/src/wp-admin/includes/ms.php b/src/wp-admin/includes/ms.php index 6a4ca9d380..939d0d08b7 100644 --- a/src/wp-admin/includes/ms.php +++ b/src/wp-admin/includes/ms.php @@ -785,7 +785,7 @@ function mu_dropdown_languages( $lang_files = array(), $current = '' ) { function site_admin_notice() { global $wp_db_version, $pagenow; - if ( ! is_super_admin() ) { + if ( ! current_user_can( 'upgrade_network' ) ) { return false; } diff --git a/src/wp-admin/network/menu.php b/src/wp-admin/network/menu.php index 41281e7d56..e4cc786cc7 100644 --- a/src/wp-admin/network/menu.php +++ b/src/wp-admin/network/menu.php @@ -19,7 +19,7 @@ if ( $update_data['counts']['total'] ) { $submenu['index.php'][10] = array( __( 'Updates' ), 'update_core', 'update-core.php' ); } -$submenu['index.php'][15] = array( __( 'Upgrade Network' ), 'manage_network', 'upgrade.php' ); +$submenu['index.php'][15] = array( __( 'Upgrade Network' ), 'upgrade_network', 'upgrade.php' ); $menu[4] = array( '', 'read', 'separator1', '', 'wp-menu-separator' ); diff --git a/src/wp-admin/network/upgrade.php b/src/wp-admin/network/upgrade.php index 5c2d3f990f..46c6a94429 100644 --- a/src/wp-admin/network/upgrade.php +++ b/src/wp-admin/network/upgrade.php @@ -32,8 +32,9 @@ get_current_screen()->set_help_sidebar( require_once( ABSPATH . 'wp-admin/admin-header.php' ); -if ( ! current_user_can( 'manage_network' ) ) +if ( ! current_user_can( 'upgrade_network' ) ) { wp_die( __( 'Sorry, you are not allowed to access this page.' ), 403 ); +} echo '
'; echo '

' . __( 'Upgrade Network' ) . '

'; diff --git a/src/wp-includes/capabilities.php b/src/wp-includes/capabilities.php index 0e766b16e8..abd872575e 100644 --- a/src/wp-includes/capabilities.php +++ b/src/wp-includes/capabilities.php @@ -478,6 +478,7 @@ function map_meta_cap( $cap, $user_id ) { case 'manage_network_plugins': case 'manage_network_themes': case 'manage_network_options': + case 'upgrade_network': $caps[] = $cap; break; case 'setup_network': diff --git a/tests/phpunit/tests/user/capabilities.php b/tests/phpunit/tests/user/capabilities.php index 88de40642e..a47901136c 100644 --- a/tests/phpunit/tests/user/capabilities.php +++ b/tests/phpunit/tests/user/capabilities.php @@ -226,6 +226,7 @@ class Tests_User_Capabilities extends WP_UnitTestCase { 'manage_network_themes' => array(), 'manage_network_options' => array(), 'delete_site' => array(), + 'upgrade_network' => array(), 'setup_network' => array( 'administrator' ), 'upload_plugins' => array( 'administrator' ), @@ -259,6 +260,7 @@ class Tests_User_Capabilities extends WP_UnitTestCase { 'upload_plugins' => array(), 'upload_themes' => array(), 'edit_css' => array(), + 'upgrade_network' => array(), 'customize' => array( 'administrator' ), 'delete_site' => array( 'administrator' ),