let users login with email address

This commit is contained in:
Evan Prodromou 2011-05-02 15:17:08 -07:00
parent c05b3b5bd2
commit 90eb09624c
2 changed files with 13 additions and 2 deletions

View File

@ -228,7 +228,7 @@ class LoginAction extends Action
$this->elementStart('ul', 'form_data');
$this->elementStart('li');
// TRANS: Field label on login page.
$this->input('nickname', _('Nickname'));
$this->input('nickname', _('Username or email'));
$this->elementEnd('li');
$this->elementStart('li');
// TRANS: Field label on login page.

View File

@ -233,7 +233,13 @@ function common_check_user($nickname, $password)
$authenticatedUser = false;
if (Event::handle('StartCheckPassword', array($nickname, $password, &$authenticatedUser))) {
$user = User::staticGet('nickname', common_canonical_nickname($nickname));
if (common_is_email($nickname)) {
$user = User::staticGet('email', common_canonical_email($nickname));
} else {
$user = User::staticGet('nickname', common_canonical_nickname($nickname));
}
if (!empty($user)) {
if (!empty($password)) { // never allow login with blank password
if (0 == strcmp(common_munge_password($password, $user->id),
@ -2297,3 +2303,8 @@ function common_log_perf_counters()
}
}
}
function common_is_email($str)
{
return (strpos($str, '@') !== false);
}