Make WordPress Core


Ignore:
Timestamp:
04/02/2010 06:46:07 AM (16 years ago)
Author:
nacin
Message:

Move add/remove super admin out of bulk edit and into user-edit.php. Introduce grant_super_admin() and revoke_super_admin(). Link to profile.php in ms-users user row for current user. Add defensive check by forcing IS_PROFILE_PAGE on user-edit if trying to edit your own user_id. see #12460

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/includes/ms.php

    r13918 r13941  
    794794}
    795795
     796/**
     797 * Grants super admin privileges.
     798 *
     799 * @since 3.0.0
     800 * @param $user_id
     801 */
     802function grant_super_admin( $user_id ) {
     803    $super_admins = get_site_option( 'site_admins', array( 'admin' ) );
     804
     805    $user = new WP_User( $user_id );
     806    if ( ! in_array( $user->user_login, $super_admins ) ) {
     807        $super_admins[] = $user->user_login;
     808        update_site_option( 'site_admins' , $super_admins );
     809    }
     810}
     811
     812/**
     813 * Revokes super admin privileges.
     814 *
     815 * @since 3.0.0
     816 * @param $user_id
     817 */
     818function revoke_super_admin( $user_id ) {
     819    $super_admins = get_site_option( 'site_admins', array( 'admin' ) );
     820    $admin_email = get_site_option( 'admin_email' );
     821   
     822    $user = new WP_User( $user_id );
     823    if ( $user->ID != $current_user->ID || $user->user_email != $admin_email ) {
     824        foreach ( $super_admins as $key => $username ) {
     825            if ( $username == $user->user_login ) {
     826                unset( $super_admins[$key] );
     827                break;
     828            }
     829        }
     830    }
     831
     832    update_site_option( 'site_admins' , $super_admins );
     833}
    796834?>
Note: See TracChangeset for help on using the changeset viewer.