diff options
author | Joas Schilling <coding@schilljs.com> | 2017-01-26 11:08:26 +0100 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2017-02-09 15:02:59 +0100 |
commit | 7c47f822a14caf91b5203be0053ddcdac40e9992 (patch) | |
tree | 1e886f8b787da346e4c7c77fc59560fcf3eb228e | |
parent | 3c4b539fdf05a47c87a8088550776cdd7bd0707d (diff) | |
download | nextcloud-server-7c47f822a14caf91b5203be0053ddcdac40e9992.tar.gz nextcloud-server-7c47f822a14caf91b5203be0053ddcdac40e9992.zip |
Save the used token id in the session so it can be used later on
Signed-off-by: Joas Schilling <coding@schilljs.com>
-rw-r--r-- | lib/private/User/Session.php | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/lib/private/User/Session.php b/lib/private/User/Session.php index 9cc42e671a8..705ca95210a 100644 --- a/lib/private/User/Session.php +++ b/lib/private/User/Session.php @@ -284,6 +284,19 @@ class Session implements IUserSession, Emitter { } /** + * set the token id + * + * @param int|null $token that was used to log in + */ + protected function setToken($token) { + if ($token === null) { + $this->session->remove('token-id'); + } else { + $this->session->set('token-id', $token); + } + } + + /** * try to log in with the provided credentials * * @param string $uid @@ -473,6 +486,7 @@ class Session implements IUserSession, Emitter { if ($user->isEnabled()) { $this->setUser($user); $this->setLoginName($uid); + $this->setToken(null); $firstTimeLogin = $user->updateLastLoginTimestamp(); $this->manager->emit('\OC\User', 'postLogin', [$user, $password]); if ($this->isLoggedIn()) { @@ -495,7 +509,7 @@ class Session implements IUserSession, Emitter { * * @param string $token * @return boolean - * @throws LoginException if an app canceld the login process or the user is not enabled + * @throws LoginException if an app canceled the login process or the user is not enabled */ private function loginWithToken($token) { try { @@ -530,6 +544,7 @@ class Session implements IUserSession, Emitter { //login $this->setUser($user); $this->setLoginName($dbToken->getLoginName()); + $this->setToken($dbToken->getId()); \OC::$server->getLockdownManager()->setToken($dbToken); $this->manager->emit('\OC\User', 'postLogin', array($user, $password)); @@ -740,10 +755,12 @@ class Session implements IUserSession, Emitter { } $this->setMagicInCookie($user->getUID(), $newToken); + $token = $this->tokenProvider->getToken($sessionId); //login $this->setUser($user); - $this->setLoginName($this->tokenProvider->getToken($sessionId)->getLoginName()); + $this->setLoginName($token->getLoginName()); + $this->setToken($token->getId()); $user->updateLastLoginTimestamp(); $this->manager->emit('\OC\User', 'postRememberedLogin', [$user]); return true; @@ -773,6 +790,7 @@ class Session implements IUserSession, Emitter { } $this->setUser(null); $this->setLoginName(null); + $this->setToken(null); $this->unsetMagicInCookie(); $this->session->clear(); } |