From 8a5d80111727450728ade26b29dc4f6438784483 Mon Sep 17 00:00:00 2001 From: Ryan Boren Date: Wed, 6 Jan 2010 23:27:22 +0000 Subject: [PATCH] Introduce is_super_admin(). see #11644. git-svn-id: https://develop.svn.wordpress.org/trunk@12611 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-includes/capabilities.php | 29 +++++++++++++++++++++++++++++ wp-includes/ms-functions.php | 33 ++++++++++++++++++--------------- 2 files changed, 47 insertions(+), 15 deletions(-) diff --git a/wp-includes/capabilities.php b/wp-includes/capabilities.php index ca6fedad34..01d4b61a2a 100644 --- a/wp-includes/capabilities.php +++ b/wp-includes/capabilities.php @@ -1062,4 +1062,33 @@ function remove_role( $role ) { return $wp_roles->remove_role( $role ); } +/** + * Determine if user is a site admin. + * + * @since 3.0 + * + * @param int $user_id (Optional) The ID of a user. Defaults to the current user. + * @return bool True if the user is a site admin. + */ +function is_super_admin( $user_id = false ) { + global $current_user; + + if ( !$current_user && !$user_id ) + return false; + + if ( !$user_id ) + $user_id = $current_user->id; + + if ( !$user_id ) + return false; + + $user = new WP_User($user_id); + + $site_admins = get_site_option( 'site_admins', array('admin') ); + if ( is_array( $site_admins ) && in_array( $user->user_login, $site_admins ) ) + return true; + + return false; +} + ?> diff --git a/wp-includes/ms-functions.php b/wp-includes/ms-functions.php index 4c8e19e156..f4560f2190 100644 --- a/wp-includes/ms-functions.php +++ b/wp-includes/ms-functions.php @@ -183,25 +183,28 @@ function get_current_user_id() { return $current_user->ID; } -function is_site_admin( $user_login = false ) { - global $current_user; +/** + * Determine if user is a site admin. + * + * @deprecated Use {@link is_keymaster()} + * + */ +function is_site_admin( $user_login = '' ) { + // This function must reside in a file included only if is_multsite() since many plugins + // test for its existence to determine if multisite is enabled. - if ( !$current_user && !$user_login ) - return false; - - if ( $user_login ) { - $user_login = sanitize_user( $user_login ); - } elseif( isset( $current_user->user_login ) ) { - $user_login = $current_user->user_login; + if ( empty($user_login) ) { + $user_id = get_current_user_id(); + if ( !$user_id ) + return false; } else { - return false; + $user = new WP_User(null, $user_login); + if ( empty($user->id) ) + return false; + $user_id = $user->id; } - $site_admins = get_site_option( 'site_admins', array('admin') ); - if( is_array( $site_admins ) && in_array( $user_login, $site_admins ) ) - return true; - - return false; + return is_super_admin($user_id); } /**