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

git-svn-id: https://develop.svn.wordpress.org/trunk@13941 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Andrew Nacin
2010-04-02 06:46:07 +00:00
parent 842e844bc5
commit db6a40aa27
4 changed files with 76 additions and 64 deletions

View File

@@ -524,7 +524,7 @@ switch ( $_GET['action'] ) {
$doaction = $_POST['action'] != -1 ? $_POST['action'] : $_POST['action2'];
foreach ( (array) $_POST['allusers'] as $key => $val ) {
if ( $val != '' || $val != '0' ) {
if ( !empty( $val ) ) {
switch ( $doaction ) {
case 'delete':
$title = __( 'Users' );
@@ -539,34 +539,12 @@ switch ( $_GET['action'] ) {
case 'superadmin':
$userfunction = 'add_superadmin';
$super_admins = get_site_option( 'site_admins', array( 'admin' ) );
$user = new WP_User( $val );
if ( ! in_array( $user->user_login, $super_admins ) ) {
if ( $current_site->blog_id )
add_user_to_blog( $current_site->blog_id, $user->ID, 'administrator' );
$super_admins[] = $user->user_login;
update_site_option( 'site_admins' , $super_admins );
}
grant_super_admin( $val );
break;
case 'notsuperadmin':
$userfunction = 'remove_superadmin';
$super_admins = get_site_option( 'site_admins', array( 'admin' ) );
$admin_email = get_site_option( 'admin_email' );
$user = new WP_User( $val );
if ( $user->ID != $current_user->ID || $user->user_email != $admin_email ) {
foreach ( $super_admins as $key => $username ) {
if ( $username == $user->user_login ) {
unset( $super_admins[$key] );
break;
}
}
}
update_site_option( 'site_admins' , $super_admins );
revoke_super_admin( $val );
break;
case 'spam':