Allow login by email address
This commit is contained in:
parent
b10dcfc3b7
commit
7aca13f14c
|
@ -40,11 +40,11 @@ script('core', [
|
|||
</div>
|
||||
<p class="grouptop">
|
||||
<input type="text" name="user" id="user"
|
||||
placeholder="<?php p($l->t('Username')); ?>"
|
||||
placeholder="<?php p($l->t('Username or email')); ?>"
|
||||
value="<?php p($_['loginName']); ?>"
|
||||
<?php p($_['user_autofocus'] ? 'autofocus' : ''); ?>
|
||||
autocomplete="on" autocapitalize="off" autocorrect="off" required>
|
||||
<label for="user" class="infield"><?php p($l->t('Username')); ?></label>
|
||||
<label for="user" class="infield"><?php p($l->t('Username or email')); ?></label>
|
||||
</p>
|
||||
|
||||
<p class="groupbottom">
|
||||
|
|
|
@ -152,14 +152,22 @@ class OC_User {
|
|||
/**
|
||||
* Try to login a user
|
||||
*
|
||||
* @param string $loginname The login name of the user to log in
|
||||
* @param string $loginName The login name of the user to log in
|
||||
* @param string $password The password of the user
|
||||
* @return boolean|null
|
||||
*
|
||||
* Log in a user and regenerate a new session - if the password is ok
|
||||
*/
|
||||
public static function login($loginname, $password) {
|
||||
$result = self::getUserSession()->login($loginname, $password);
|
||||
public static function login($loginName, $password) {
|
||||
|
||||
$result = self::getUserSession()->login($loginName, $password);
|
||||
if (!$result) {
|
||||
$users = \OC::$server->getUserManager()->getByEmail($loginName);
|
||||
// we only allow login by email if unique
|
||||
if (count($users) === 1) {
|
||||
$result = self::getUserSession()->login($users[0]->getUID(), $password);
|
||||
}
|
||||
}
|
||||
if ($result) {
|
||||
// Refresh the token
|
||||
\OC::$server->getCsrfTokenManager()->refreshToken();
|
||||
|
|
Loading…
Reference in New Issue