Index: modules/user/user.module =================================================================== RCS file: /cvs/drupal/drupal/modules/user/user.module,v retrieving revision 1.877 diff -u -r1.877 user.module --- modules/user/user.module 20 Dec 2007 21:59:17 -0000 1.877 +++ modules/user/user.module 21 Dec 2007 19:23:48 -0000 @@ -1245,14 +1245,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.
' . + 'As this is the site administrator\'s user account, this rule has been overridden.
' . + 'However you might want to check the Access rules configuration.', + array('%name' => $name, '@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)); + } } } }