summaryrefslogtreecommitdiff
path: root/modules/user/user.module
diff options
context:
space:
mode:
Diffstat (limited to 'modules/user/user.module')
-rw-r--r--modules/user/user.module10
1 files changed, 6 insertions, 4 deletions
diff --git a/modules/user/user.module b/modules/user/user.module
index e6b6cd42c..34003c959 100644
--- a/modules/user/user.module
+++ b/modules/user/user.module
@@ -86,11 +86,13 @@ function user_save($account, $array = array()) {
db_query("UPDATE {users} SET $query changed = %d WHERE uid = %d", array_merge($v, array(time(), $account->uid)));
- // reload user roles
- db_query("DELETE FROM {users_roles} WHERE uid = %d", $account->uid);
+ // reload user roles if provided
+ if (is_array($array['rid'])) {
+ db_query("DELETE FROM {users_roles} WHERE uid = %d", $account->uid);
- foreach ($array['rid'] as $rid) {
- db_query("INSERT INTO {users_roles} (uid, rid) VALUES (%d, %d)", $account->uid, $rid);
+ foreach ($array['rid'] as $rid) {
+ db_query("INSERT INTO {users_roles} (uid, rid) VALUES (%d, %d)", $account->uid, $rid);
+ }
}
$user = user_load(array('uid' => $account->uid));