WordPress.org

Make WordPress Core

Ticket #39206: 39206.diff

File 39206.diff, 3.5 KB (added by flixos90, 3 years ago)
  • src/wp-admin/menu.php

     
    244244        if ( is_multisite() && !is_main_site() )
    245245                $submenu['tools.php'][25] = array( __('Delete Site'), 'delete_site', 'ms-delete-site.php' );
    246246        if ( ! is_multisite() && defined('WP_ALLOW_MULTISITE') && WP_ALLOW_MULTISITE )
    247                 $submenu['tools.php'][50] = array(__('Network Setup'), 'manage_options', 'network.php');
     247                $submenu['tools.php'][50] = array(__('Network Setup'), 'setup_network', 'network.php');
    248248
    249249$menu[80] = array( __('Settings'), 'manage_options', 'options-general.php', '', 'menu-top menu-icon-settings', 'menu-settings', 'dashicons-admin-settings' );
    250250        $submenu['options-general.php'][10] = array(_x('General', 'settings screen'), 'manage_options', 'options-general.php');
  • src/wp-admin/network/menu.php

     
    5353$menu[25] = array(__('Settings'), 'manage_network_options', 'settings.php', '', 'menu-top menu-icon-settings', 'menu-settings', 'dashicons-admin-settings');
    5454if ( defined( 'MULTISITE' ) && defined( 'WP_ALLOW_MULTISITE' ) && WP_ALLOW_MULTISITE ) {
    5555        $submenu['settings.php'][5]  = array( __('Network Settings'), 'manage_network_options', 'settings.php' );
    56         $submenu['settings.php'][10] = array( __('Network Setup'), 'manage_network_options', 'setup.php' );
     56        $submenu['settings.php'][10] = array( __('Network Setup'), 'setup_network', 'setup.php' );
    5757}
    5858unset($update_data);
    5959
  • src/wp-admin/network.php

     
    1515/** WordPress Administration Bootstrap */
    1616require_once( dirname( __FILE__ ) . '/admin.php' );
    1717
    18 if ( ! is_super_admin() ) {
     18if ( ! current_user_can( 'setup_network' ) ) {
    1919        wp_die( __( 'Sorry, you are not allowed to manage options for this site.' ) );
    2020}
    2121
  • src/wp-includes/capabilities.php

     
    480480        case 'manage_network_options':
    481481                $caps[] = $cap;
    482482                break;
     483        case 'setup_network':
     484                if ( is_multisite() ) {
     485                        $caps[] = 'manage_network_options';
     486                } else {
     487                        $caps[] = 'manage_options';
     488                }
     489                break;
    483490        default:
    484491                // Handle meta capabilities for custom post types.
    485492                global $post_type_meta_caps;
  • tests/phpunit/tests/user/capabilities.php

     
    227227                        'manage_network_options' => array(),
    228228                        'delete_site'            => array(),
    229229
     230                        'setup_network'          => array( 'administrator' ),
    230231                        'upload_plugins'         => array( 'administrator' ),
    231232                        'upload_themes'          => array( 'administrator' ),
    232233                        'customize'              => array( 'administrator' ),
     
    254255                        'manage_network_plugins' => array(),
    255256                        'manage_network_themes'  => array(),
    256257                        'manage_network_options' => array(),
     258                        'setup_network'          => array(),
    257259                        'upload_plugins'         => array(),
    258260                        'upload_themes'          => array(),
    259261                        'edit_css'               => array(),