Index: modules/user/user.module =================================================================== RCS file: /cvs/drupal/drupal/modules/user/user.module,v retrieving revision 1.887 diff -u -r1.887 user.module --- modules/user/user.module 10 Jan 2008 20:22:57 -0000 1.887 +++ modules/user/user.module 11 Jan 2008 10:34:06 -0000 @@ -1275,14 +1275,30 @@ * A FAPI validate handler. Sets an error is supplied username has been blocked or denied access. */ function user_login_name_validate($form, &$form_state) { - if (isset($form_state['values']['name'])) { - if (user_is_blocked($form_state['values']['name'])) { - // blocked in user administration - form_set_error('name', t('The username %name has not been activated or is blocked.', array('%name' => $form_state['values']['name']))); - } - else if (drupal_is_denied('user', $form_state['values']['name'])) { - // denied by access controls - form_set_error('name', t('The name %name is a reserved username.', array('%name' => $form_state['values']['name']))); + $name = $form_state['values']['name']; + if (isset($name)) { + + // blocked in user administration + if (user_is_blocked($name)) { + form_set_error('name', t('The username %name has not been activated or is blocked.', array('%name' => $name))); + watchdog('user', 'Login attempt failed: User %name blocked.', array('%name' => $name)); + } + + // denied by an access rule + else if (drupal_is_denied('user', $name)) { + $user_one = db_result(db_query('SELECT name FROM {users} WHERE uid = 1')); + if ($name == $user_one) { + // always allow access to uid 1 + drupal_set_message(t('An access rule tried to deny access to %name.', array('%name' => $name)) . + t("As this is the site administrator's user account, this rule has been overridden.") . + t('However you might want to check the Access rules configuration', array('@link' => '/admin/user/rules')), + 'warning'); + } + else { + // otherwise deny access + form_set_error('name', t('The name %name is a reserved username.', array('%name' => $name))); + watchdog('user', 'Login attempt failed: Username %name denied by access rule.', array('%name' => $name)); + } } } }