From 7c02c24e5f3fd2b51658e6a8f33de89ff3ec7c33 Mon Sep 17 00:00:00 2001 From: John Blackbourn Date: Sun, 4 Dec 2016 22:06:36 +0000 Subject: [PATCH] Role/Capability: Don't assign the `delete_site` capability to anyone on single site installs. This capability is not relevant on single site installs; it only applies to deleting a site on a multisite installation. Fixes #38326 git-svn-id: https://develop.svn.wordpress.org/trunk@39494 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/capabilities.php | 6 +++++- tests/phpunit/tests/user/capabilities.php | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/wp-includes/capabilities.php b/src/wp-includes/capabilities.php index c1e644a85f..308c7063c8 100644 --- a/src/wp-includes/capabilities.php +++ b/src/wp-includes/capabilities.php @@ -422,7 +422,11 @@ function map_meta_cap( $cap, $user_id ) { $caps[] = 'edit_theme_options'; break; case 'delete_site': - $caps[] = 'manage_options'; + if ( is_multisite() ) { + $caps[] = 'manage_options'; + } else { + $caps[] = 'do_not_allow'; + } break; case 'edit_term': case 'delete_term': diff --git a/tests/phpunit/tests/user/capabilities.php b/tests/phpunit/tests/user/capabilities.php index 5411c8a545..a8ba2acd8f 100644 --- a/tests/phpunit/tests/user/capabilities.php +++ b/tests/phpunit/tests/user/capabilities.php @@ -225,11 +225,11 @@ class Tests_User_Capabilities extends WP_UnitTestCase { 'manage_network_plugins' => array(), 'manage_network_themes' => array(), 'manage_network_options' => array(), + 'delete_site' => array(), 'upload_plugins' => array( 'administrator' ), 'upload_themes' => array( 'administrator' ), 'customize' => array( 'administrator' ), - 'delete_site' => array( 'administrator' ), 'add_users' => array( 'administrator' ), 'edit_categories' => array( 'administrator', 'editor' ),