diff options
author | Lukas Reschke <lukas@statuscode.ch> | 2017-05-17 23:21:09 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-17 23:21:09 +0300 |
commit | fb4576752440e90f6e54588b707184290d74f1c0 (patch) | |
tree | 664ac2f76b8a83ba2c94e01b693ebdc50699b734 | |
parent | aa9b465af790989c696d1e93c3dcbeb59660527d (diff) | |
parent | 0a43c259c46bb820d46b8732f431622ecf4f25b3 (diff) |
Merge pull request #4892 from nextcloud/fix/encryption-remembered-login-hook
Fix encryption + remembered login due to missing login hook
-rw-r--r-- | lib/private/Server.php | 4 | ||||
-rw-r--r-- | lib/private/User/Session.php | 8 |
2 files changed, 11 insertions, 1 deletions
diff --git a/lib/private/Server.php b/lib/private/Server.php index ac69122d0b2..75e9d911632 100644 --- a/lib/private/Server.php +++ b/lib/private/Server.php @@ -361,6 +361,10 @@ class Server extends ServerContainer implements IServerContainer { /** @var $user \OC\User\User */ \OC_Hook::emit('OC_User', 'post_login', array('run' => true, 'uid' => $user->getUID(), 'password' => $password)); }); + $userSession->listen('\OC\User', 'postRememberedLogin', function ($user, $password) { + /** @var $user \OC\User\User */ + \OC_Hook::emit('OC_User', 'post_login', array('run' => true, 'uid' => $user->getUID(), 'password' => $password)); + }); $userSession->listen('\OC\User', 'logout', function () { \OC_Hook::emit('OC_User', 'logout', array()); }); diff --git a/lib/private/User/Session.php b/lib/private/User/Session.php index ac0150ff611..f818666c374 100644 --- a/lib/private/User/Session.php +++ b/lib/private/User/Session.php @@ -792,7 +792,13 @@ class Session implements IUserSession, Emitter { $this->setToken($token->getId()); $this->lockdownManager->setToken($token); $user->updateLastLoginTimestamp(); - $this->manager->emit('\OC\User', 'postRememberedLogin', [$user]); + $password = null; + try { + $password = $this->tokenProvider->getPassword($token, $sessionId); + } catch (PasswordlessTokenException $ex) { + // Ignore + } + $this->manager->emit('\OC\User', 'postRememberedLogin', [$user, $password]); return true; } |