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),