summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2016-06-09 16:28:06 +0200
committerVincent Petry <pvince81@owncloud.com>2016-06-09 16:28:06 +0200
commit6ba18934e6f095de08bec7bdc10c45485eeb5cc7 (patch)
tree35f0b0e84da656ef0a7cf3975b5ba05e301149d4 /lib
parentac163426ef3db18a603c07f0e2b24f00e1cdc673 (diff)
parentf20c617154cbc6d53bc52a4e81129dd4e0e22a70 (diff)
downloadnextcloud-server-6ba18934e6f095de08bec7bdc10c45485eeb5cc7.tar.gz
nextcloud-server-6ba18934e6f095de08bec7bdc10c45485eeb5cc7.zip
Merge pull request #25000 from owncloud/fix-email-login-dav
Allow login by email address via webdav as well
Diffstat (limited to 'lib')
-rw-r--r--lib/private/User/Session.php17
-rw-r--r--lib/private/legacy/api.php4
2 files changed, 16 insertions, 5 deletions
diff --git a/lib/private/User/Session.php b/lib/private/User/Session.php
index e1ede95e2ae..f560bb4bfc0 100644
--- a/lib/private/User/Session.php
+++ b/lib/private/User/Session.php
@@ -361,7 +361,14 @@ class Session implements IUserSession, Emitter {
// TODO: throw LoginException instead (https://github.com/owncloud/core/pull/24616)
return false;
}
- return $this->login($user, $password);
+ if (!$this->login($user, $password) ) {
+ $users = $this->manager->getByEmail($user);
+ if (count($users) === 1) {
+ return $this->login($users[0]->getUID(), $password);
+ }
+ return false;
+ }
+ return true;
}
private function isTokenAuthEnforced() {
@@ -376,7 +383,11 @@ class Session implements IUserSession, Emitter {
);
$user = $this->manager->get($username);
if (is_null($user)) {
- return true;
+ $users = $this->manager->getByEmail($username);
+ if (count($users) !== 1) {
+ return true;
+ }
+ $user = $users[0];
}
// DI not possible due to cyclic dependencies :'-/
return OC::$server->getTwoFactorAuthManager()->isTwoFactorAuthenticated($user);
@@ -385,7 +396,7 @@ class Session implements IUserSession, Emitter {
/**
* Check if the given 'password' is actually a device token
*
- * @param type $password
+ * @param string $password
* @return boolean
*/
public function isTokenPassword($password) {
diff --git a/lib/private/legacy/api.php b/lib/private/legacy/api.php
index 1e581153ce6..024f3c0fb63 100644
--- a/lib/private/legacy/api.php
+++ b/lib/private/legacy/api.php
@@ -349,7 +349,7 @@ class OC_API {
if ($ocsApiRequest) {
// initialize the user's filesystem
- \OC_Util::setUpFS(\OC_User::getUser());
+ \OC_Util::setupFS(\OC_User::getUser());
self::$isLoggedIn = true;
return OC_User::getUser();
@@ -374,7 +374,7 @@ class OC_API {
self::$logoutRequired = true;
// initialize the user's filesystem
- \OC_Util::setUpFS(\OC_User::getUser());
+ \OC_Util::setupFS(\OC_User::getUser());
self::$isLoggedIn = true;
return \OC_User::getUser();