summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2005-06-21 18:21:08 +0000
committerDries Buytaert <dries@buytaert.net>2005-06-21 18:21:08 +0000
commit4c77761efb355f52f0bc5502cf8d846f175f408b (patch)
tree18380da37183e8f36df670f55afa3f8fa951e0b1 /modules
parente550f8416210489aedd88a73cdc3c5b614edc574 (diff)
downloadbrdo-4c77761efb355f52f0bc5502cf8d846f175f408b.tar.gz
brdo-4c77761efb355f52f0bc5502cf8d846f175f408b.tar.bz2
- Patch #3962 by deekayen: improved error message when a blocked user attempts to login.
Diffstat (limited to 'modules')
-rw-r--r--modules/user.module27
-rw-r--r--modules/user/user.module27
2 files changed, 44 insertions, 10 deletions
diff --git a/modules/user.module b/modules/user.module
index 7bba07fb7..d53165d69 100644
--- a/modules/user.module
+++ b/modules/user.module
@@ -339,6 +339,18 @@ function user_access($string, $account = NULL) {
}
/**
+ * Checks for usernames blocked by user administration
+ *
+ * @return boolean true for blocked users, false for active
+ */
+function user_is_blocked($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 @@ function user_login($edit = array(), $msg = '') {
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_is_blocked($edit['name'])) {
+ // blocked in user administration
+ $error = t('The username %name has been blocked.', array('%name' => theme('placeholder', $edit['name'])));
+ }
+ else if (drupal_is_denied('user', $edit['name'])) {
+ // denied by access controls
+ $error = t('The name %name is a reserved username.', array('%name' => theme('placeholder', $edit['name'])));
}
else if ($edit['name'] && $edit['pass']) {
@@ -1116,7 +1133,7 @@ function user_edit_validate($uid, &$edit) {
else if (db_num_rows(db_query("SELECT uid FROM {users} WHERE uid != %d AND LOWER(name) = LOWER('%s')", $uid, $edit['name'])) > 0) {
form_set_error('name', t('The name %name is already taken.', array('%name' => theme('placeholder', $edit['name']))));
}
- else if (drupal_deny('user', $edit['name'])) {
+ else if (drupal_is_denied('user', $edit['name'])) {
form_set_error('name', t('The name %name has been denied access.', array('%name' => theme('placeholder', $edit['name']))));
}
@@ -1127,7 +1144,7 @@ function user_edit_validate($uid, &$edit) {
else if (db_num_rows(db_query("SELECT uid FROM {users} WHERE uid != %d AND LOWER(mail) = LOWER('%s')", $uid, $edit['mail'])) > 0) {
form_set_error('mail', t('The e-mail address %email is already taken.', array('%email' => theme('placeholder', $edit['mail']))));
}
- else if (drupal_deny('mail', $edit['mail'])) {
+ else if (drupal_is_denied('mail', $edit['mail'])) {
form_set_error('mail', t('The e-mail address %email has been denied access.', array('%email' => theme('placeholder', $edit['mail']))));
}
@@ -1384,7 +1401,7 @@ function user_admin_access_check() {
$edit = $_POST['edit'];
if ($op) {
- if (drupal_deny($edit['type'], $edit['test'])) {
+ if (drupal_is_denied($edit['type'], $edit['test'])) {
drupal_set_message(t('%test is not allowed.', array('%test' => theme('placeholder', $edit['test']))));
}
else {
diff --git a/modules/user/user.module b/modules/user/user.module
index 7bba07fb7..d53165d69 100644
--- a/modules/user/user.module
+++ b/modules/user/user.module
@@ -339,6 +339,18 @@ function user_access($string, $account = NULL) {
}
/**
+ * Checks for usernames blocked by user administration
+ *
+ * @return boolean true for blocked users, false for active
+ */
+function user_is_blocked($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 @@ function user_login($edit = array(), $msg = '') {
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_is_blocked($edit['name'])) {
+ // blocked in user administration
+ $error = t('The username %name has been blocked.', array('%name' => theme('placeholder', $edit['name'])));
+ }
+ else if (drupal_is_denied('user', $edit['name'])) {
+ // denied by access controls
+ $error = t('The name %name is a reserved username.', array('%name' => theme('placeholder', $edit['name'])));
}
else if ($edit['name'] && $edit['pass']) {
@@ -1116,7 +1133,7 @@ function user_edit_validate($uid, &$edit) {
else if (db_num_rows(db_query("SELECT uid FROM {users} WHERE uid != %d AND LOWER(name) = LOWER('%s')", $uid, $edit['name'])) > 0) {
form_set_error('name', t('The name %name is already taken.', array('%name' => theme('placeholder', $edit['name']))));
}
- else if (drupal_deny('user', $edit['name'])) {
+ else if (drupal_is_denied('user', $edit['name'])) {
form_set_error('name', t('The name %name has been denied access.', array('%name' => theme('placeholder', $edit['name']))));
}
@@ -1127,7 +1144,7 @@ function user_edit_validate($uid, &$edit) {
else if (db_num_rows(db_query("SELECT uid FROM {users} WHERE uid != %d AND LOWER(mail) = LOWER('%s')", $uid, $edit['mail'])) > 0) {
form_set_error('mail', t('The e-mail address %email is already taken.', array('%email' => theme('placeholder', $edit['mail']))));
}
- else if (drupal_deny('mail', $edit['mail'])) {
+ else if (drupal_is_denied('mail', $edit['mail'])) {
form_set_error('mail', t('The e-mail address %email has been denied access.', array('%email' => theme('placeholder', $edit['mail']))));
}
@@ -1384,7 +1401,7 @@ function user_admin_access_check() {
$edit = $_POST['edit'];
if ($op) {
- if (drupal_deny($edit['type'], $edit['test'])) {
+ if (drupal_is_denied($edit['type'], $edit['test'])) {
drupal_set_message(t('%test is not allowed.', array('%test' => theme('placeholder', $edit['test']))));
}
else {