Site health: Introduce view_site_health_checks capability.
Introduces the faux primitive capability `view_site_health_checks` available to single site admins and multisite super-admin to view the site health page within the admin. The capability is mapped to the `install_plugins` capability without being dependent on the file system being writable. This fixes a bug where the feature couldn't be used by sites unable to write to the file system or managed through version control. The capability is granted on the `user_has_cap` filter. Props birgire, Clorith, palmiak, peterwilsoncc, spacedmonkey. Fixes #46957. Built from https://develop.svn.wordpress.org/trunk@45507 git-svn-id: http://core.svn.wordpress.org/trunk@45318 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
@@ -1025,6 +1025,31 @@ function wp_maybe_grant_resume_extensions_caps( $allcaps ) {
|
||||
return $allcaps;
|
||||
}
|
||||
|
||||
/**
|
||||
* Filters the user capabilities to grant the 'view_site_health_checks' capabilities as necessary.
|
||||
*
|
||||
* @since 5.2.2
|
||||
*
|
||||
* @param bool[] $allcaps An array of all the user's capabilities.
|
||||
* @param string[] $caps Required primitive capabilities for the requested capability.
|
||||
* @param array $args {
|
||||
* Arguments that accompany the requested capability check.
|
||||
*
|
||||
* @type string $0 Requested capability.
|
||||
* @type int $1 Concerned user ID.
|
||||
* @type mixed ...$2 Optional second and further parameters, typically object ID.
|
||||
* }
|
||||
* @param WP_User $user The user object.
|
||||
* @return bool[] Filtered array of the user's capabilities.
|
||||
*/
|
||||
function wp_maybe_grant_site_health_caps( $allcaps, $caps, $args, $user ) {
|
||||
if ( ! empty( $allcaps['install_plugins'] ) && ( ! is_multisite() || is_super_admin( $user->ID ) ) ) {
|
||||
$allcaps['view_site_health_checks'] = true;
|
||||
}
|
||||
|
||||
return $allcaps;
|
||||
}
|
||||
|
||||
return;
|
||||
|
||||
// Dummy gettext calls to get strings in the catalog.
|
||||
|
||||
@@ -580,5 +580,6 @@ add_filter( 'pre_oembed_result', 'wp_filter_pre_oembed_result', 10, 3 );
|
||||
// Capabilities
|
||||
add_filter( 'user_has_cap', 'wp_maybe_grant_install_languages_cap', 1 );
|
||||
add_filter( 'user_has_cap', 'wp_maybe_grant_resume_extensions_caps', 1 );
|
||||
add_filter( 'user_has_cap', 'wp_maybe_grant_site_health_caps', 1, 4 );
|
||||
|
||||
unset( $filter, $action );
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
*
|
||||
* @global string $wp_version
|
||||
*/
|
||||
$wp_version = '5.3-alpha-45506';
|
||||
$wp_version = '5.3-alpha-45507';
|
||||
|
||||
/**
|
||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||
|
||||
Reference in New Issue
Block a user