From 755a926b659d7d09a8cf94e92f6b032f70b11d0f Mon Sep 17 00:00:00 2001 From: Felix Arntz Date: Sat, 19 Aug 2017 10:39:44 +0000 Subject: [PATCH] Multisite: Use correct capability for the Updates page in the network admin. A user should not be required to have the `update_core` capability to access the Updates page. Having one of the update capabilities for core, plugins, themes and languages should be sufficient. Fixes #41538. Built from https://develop.svn.wordpress.org/trunk@41269 git-svn-id: http://core.svn.wordpress.org/trunk@41109 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/network/menu.php | 16 ++++++++++++++-- wp-includes/version.php | 2 +- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/wp-admin/network/menu.php b/wp-admin/network/menu.php index e4cc786cc7..e21deb8b94 100644 --- a/wp-admin/network/menu.php +++ b/wp-admin/network/menu.php @@ -12,13 +12,25 @@ $menu[2] = array(__('Dashboard'), 'manage_network', 'index.php', '', 'menu-top m $submenu['index.php'][0] = array( __( 'Home' ), 'read', 'index.php' ); +if ( current_user_can( 'update_core' ) ) { + $cap = 'update_core'; +} elseif ( current_user_can( 'update_plugins' ) ) { + $cap = 'update_plugins'; +} elseif ( current_user_can( 'update_themes' ) ) { + $cap = 'update_themes'; +} else { + $cap = 'update_languages'; +} + $update_data = wp_get_update_data(); if ( $update_data['counts']['total'] ) { - $submenu['index.php'][10] = array( sprintf( __( 'Updates %s' ), "" . number_format_i18n( $update_data['counts']['total'] ) . "" ), 'update_core', 'update-core.php' ); + $submenu['index.php'][10] = array( sprintf( __( 'Updates %s' ), "" . number_format_i18n( $update_data['counts']['total'] ) . "" ), $cap, 'update-core.php' ); } else { - $submenu['index.php'][10] = array( __( 'Updates' ), 'update_core', 'update-core.php' ); + $submenu['index.php'][10] = array( __( 'Updates' ), $cap, 'update-core.php' ); } +unset( $cap ); + $submenu['index.php'][15] = array( __( 'Upgrade Network' ), 'upgrade_network', 'upgrade.php' ); $menu[4] = array( '', 'read', 'separator1', '', 'wp-menu-separator' ); diff --git a/wp-includes/version.php b/wp-includes/version.php index 66a53b50fc..083c52db46 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -4,7 +4,7 @@ * * @global string $wp_version */ -$wp_version = '4.9-alpha-41268'; +$wp_version = '4.9-alpha-41269'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.