diff options
author | Lukas Fleischer <lfleischer@archlinux.org> | 2015-09-11 22:01:46 +0200 |
---|---|---|
committer | Lukas Fleischer <lfleischer@archlinux.org> | 2015-09-11 22:18:31 +0200 |
commit | ee9a8f232b960c5bfad7376f129710d19871edcc (patch) | |
tree | b465103e658ef3d3be813689f2d745eda1ce1506 | |
parent | c5014b0752d2544cfb04522bda164e89246702bd (diff) | |
download | aur-ee9a8f232b960c5bfad7376f129710d19871edcc.tar.gz aur-ee9a8f232b960c5bfad7376f129710d19871edcc.tar.xz |
Allow for logging in via email address
Accept both user names and email addresses in the login prompt.
Suggested-by: Johannes Löthberg <johannes@kyriasis.com>
Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
-rw-r--r-- | web/html/login.php | 2 | ||||
-rw-r--r-- | web/lib/acctfuncs.inc.php | 2 | ||||
-rw-r--r-- | web/lib/aur.inc.php | 15 |
3 files changed, 17 insertions, 2 deletions
diff --git a/web/html/login.php b/web/html/login.php index ab7bac9e..cef9be48 100644 --- a/web/html/login.php +++ b/web/html/login.php @@ -28,7 +28,7 @@ html_header('AUR ' . __("Login")); <ul class="errorlist"><li><?= $login_error ?></li></ul> <?php endif; ?> <p> - <label for="id_username"><?= __('Username') . ':'; ?></label> + <label for="id_username"><?= __('User name or email address') . ':'; ?></label> <input id="id_username" type="text" name="user" size="30" maxlength="<?= config_get_int('options', 'username_max_len'); ?>" value="<?php if (isset($_POST['user'])) { print htmlspecialchars($_POST['user'], ENT_QUOTES); } ?>" autofocus="autofocus" /> </p> <p> diff --git a/web/lib/acctfuncs.inc.php b/web/lib/acctfuncs.inc.php index ee8f0e3f..756c8477 100644 --- a/web/lib/acctfuncs.inc.php +++ b/web/lib/acctfuncs.inc.php @@ -479,7 +479,7 @@ function try_login() { } $dbh = DB::connect(); - $userID = uid_from_username($_REQUEST['user']); + $userID = uid_from_loginname($_REQUEST['user']); if (user_suspended($userID)) { $login_error = __('Account suspended'); diff --git a/web/lib/aur.inc.php b/web/lib/aur.inc.php index 7d659132..9015ae8f 100644 --- a/web/lib/aur.inc.php +++ b/web/lib/aur.inc.php @@ -467,6 +467,21 @@ function uid_from_username($username) { } /** + * Determine the user's ID in the database using a username or email address + * + * @param string $username The username or email address of an account + * + * @return string Return user ID if exists, otherwise null + */ +function uid_from_loginname($loginname) { + $uid = uid_from_username($loginname); + if (!$uid) { + $uid = uid_from_email($loginname); + } + return $uid; +} + +/** * Determine the user's ID in the database using an e-mail address * * @param string $email An e-mail address in foo@example.com format |