Index: user.module =================================================================== RCS file: /cvs/drupal/drupal/modules/user.module,v retrieving revision 1.480 diff -u -Ff -r1.480 user.module --- user.module 19 Jun 2005 09:06:02 -0000 1.480 +++ user.module 19 Jun 2005 22:05:45 -0000 @@ -137,7 +137,7 @@ foreach (array_keys($array['roles' } } - // Delete a blocked user's sessions to kick them if they are online. + // Delete a deactivated user's sessions to kick them if they are online. if (isset($array['status']) && $array['status'] == 0) { db_query('DELETE FROM {sessions} WHERE uid = %d', $account->uid); } @@ -339,6 +339,18 @@ if (isset($perm[$account->uid])) { } /** + * Checks for usernames deactivated by user administration + * + * @return boolean true for deactivated users, false for active + */ +function user_deactivated($name) { + $allow = db_fetch_object(db_query("SELECT * FROM {users} WHERE status = 1 AND name = LOWER('%s')", $name)); + $deny = db_fetch_object(db_query("SELECT * FROM {users} WHERE status = 0 AND name = LOWER('%s')", $name)); + + return $deny && !$allow; +} + +/** * Send an e-mail message. */ function user_mail($mail, $subject, $message, $header) { @@ -798,8 +810,13 @@ if ($user->uid) { drupal_goto('user'); } - if (drupal_deny('user', $edit['name'])) { - $error = t('The name %s has been denied access.', array('%s' => theme('placeholder', $edit['name']))); + if (user_deactivated($edit['name'])) { + // deactivated in user administration + $error = t('The username %s has been deactivated.', array('%s' => theme('placeholder', $edit['name']))); + } + else if (drupal_deny('user', $edit['name'])) { + // denied by access controls + $error = t('The name %s is a reserved username.', array('%s' => theme('placeholder', $edit['name']))); } else if ($edit['name'] && $edit['pass']) { @@ -1088,7 +1105,7 @@ $group .= form_textfield(t('E-mail add $group .= form_item(t('Password'), ' ', t('Enter your new password twice if you want to change your current password, or leave it blank if you are happy with your current password.'), NULL, TRUE); if (user_access('administer users')) { - $group .= form_radios(t('Status'), 'status', $edit['status'], array(t('Blocked'), t('Active'))); + $group .= form_radios(t('Status'), 'status', $edit['status'], array(t('Deactivated'), t('Active'))); $group .= form_checkboxes(t('Roles'), 'roles', array_keys($edit['roles']), user_roles(1), t('Select at least one role. The user receives the combined permissions of all of the selected roles.'), NULL, TRUE); } @@ -1688,7 +1705,7 @@ array('data' => t('Last access'), 'f $sql .= tablesort_sql($header); $result = pager_query($sql, 50); - $status = array(t('blocked'), t('active')); + $status = array(t('deactivated'), t('active')); $destination = drupal_get_destination(); while ($account = db_fetch_object($result)) { $rows[] = array(format_name($account),