diff --git a/wp-admin/user-edit.php b/wp-admin/user-edit.php index 851451ac06..f7ab8f7a21 100644 --- a/wp-admin/user-edit.php +++ b/wp-admin/user-edit.php @@ -103,11 +103,22 @@ if ( !current_user_can('edit_user', $user_id) ) '; +$role_list = ''; +$user_has_role = false; foreach($wp_roles->role_names as $role => $name) { - $selected = ($profileuser->has_cap($role)) ? ' selected="selected"' : ''; - echo ""; + if ( $profileuser->has_cap($role) ) { + $selected = ' selected="selected"'; + $user_has_role = true; + } else { + $selected = ''; + } + $role_list .= ""; } -echo ''; +if ( $user_has_role ) + $role_list .= ''; +else + $role_list .= ''; +echo $role_list . ''; ?>

role_names[$role]; ?>

+ +

+ diff --git a/wp-includes/capabilities.php b/wp-includes/capabilities.php index a1dfa56a3f..3e85e4fba0 100644 --- a/wp-includes/capabilities.php +++ b/wp-includes/capabilities.php @@ -174,7 +174,7 @@ class WP_User { //Build $allcaps from role caps, overlay user's $caps $this->allcaps = array(); - foreach($this->roles as $role) { + foreach( (array) $this->roles as $role) { $role = $wp_roles->get_role($role); $this->allcaps = array_merge($this->allcaps, $role->capabilities); } @@ -199,8 +199,12 @@ class WP_User { function set_role($role) { foreach($this->roles as $oldrole) unset($this->caps[$oldrole]); - $this->caps[$role] = true; - $this->roles = array($role => true); + if ( !empty($role) ) { + $this->caps[$role] = true; + $this->roles = array($role => true); + } else { + $this->roles = false; + } update_usermeta($this->id, $this->cap_key, $this->caps); $this->get_role_caps(); $this->update_user_level_from_caps(); diff --git a/wp-includes/registration-functions.php b/wp-includes/registration-functions.php index a0860bd041..f66441edda 100644 --- a/wp-includes/registration-functions.php +++ b/wp-includes/registration-functions.php @@ -102,7 +102,7 @@ function wp_insert_user($userdata) { update_usermeta( $user_id, 'aim', $aim ); update_usermeta( $user_id, 'yim', $yim ); - if ($update && !empty($role)) { + if ( $update ) { $user = new WP_User($user_id); $user->set_role($role); }