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.