Ticket #12815: 12815.diff

File 12815.diff, 1009 bytes (added by ryan, 3 years ago)
  • wp-includes/capabilities.php

     
    11591159 * @return bool True if the user is a site admin. 
    11601160 */ 
    11611161function is_super_admin( $user_id = false ) { 
     1162        global $site_admins; 
     1163 
    11621164        if ( ! $user_id ) { 
    11631165                $current_user = wp_get_current_user(); 
    11641166                $user_id = ! empty($current_user) ? $current_user->id : 0; 
     
    11701172        $user = new WP_User($user_id); 
    11711173 
    11721174        if ( is_multisite() ) { 
    1173                 $site_admins = get_site_option( 'site_admins', array('admin') ); 
    1174                 if ( is_array( $site_admins ) && in_array( $user->user_login, $site_admins ) ) 
     1175                if ( isset($site_admins) ) 
     1176                        $super_admins = $site_admins; 
     1177                else 
     1178                        $super_admins = get_site_option( 'site_admins', array('admin') ); 
     1179 
     1180                if ( is_array( $super_admins ) && in_array( $user->user_login, $super_admins ) ) 
    11751181                        return true; 
    11761182        } else { 
    11771183                if ( $user->has_cap('delete_users') )