Introduce get_super_admins(). Allow hard-coding a global super_admins array and bypassing site options. fixes #12815
git-svn-id: http://svn.automattic.com/wordpress/trunk@14206 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
@@ -1170,6 +1170,24 @@ function remove_role( $role ) {
|
||||
return $wp_roles->remove_role( $role );
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve a list of super admins.
|
||||
*
|
||||
* @since 3.0.0
|
||||
*
|
||||
* @uses $super_admins Super admins global variable, if set.
|
||||
*
|
||||
* @return array List of super admin logins
|
||||
*/
|
||||
function get_super_admins() {
|
||||
global $super_admins;
|
||||
|
||||
if ( isset($super_admins) )
|
||||
return $super_admins;
|
||||
else
|
||||
return get_site_option( 'site_admins', array('admin') );
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine if user is a site admin.
|
||||
*
|
||||
@@ -1190,8 +1208,8 @@ function is_super_admin( $user_id = false ) {
|
||||
$user = new WP_User($user_id);
|
||||
|
||||
if ( is_multisite() ) {
|
||||
$site_admins = get_site_option( 'site_admins', array('admin') );
|
||||
if ( is_array( $site_admins ) && in_array( $user->user_login, $site_admins ) )
|
||||
$super_admins = get_super_admins();
|
||||
if ( is_array( $super_admins ) && in_array( $user->user_login, $super_admins ) )
|
||||
return true;
|
||||
} else {
|
||||
if ( $user->has_cap('delete_users') )
|
||||
|
||||
Reference in New Issue
Block a user