From daf9d235478ceccd484fbb66e445e19a3b2cd09b Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Fri, 2 Dec 2016 11:16:33 +0100 Subject: [PATCH] don't regenerate Session ID twice, also fixes tests Signed-off-by: Arthur Schiwon --- lib/private/User/Session.php | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/private/User/Session.php b/lib/private/User/Session.php index dca5ff394ac..9bbf62b5275 100644 --- a/lib/private/User/Session.php +++ b/lib/private/User/Session.php @@ -328,10 +328,11 @@ class Session implements IUserSession, Emitter { /** * @param IUser $user * @param array $loginDetails + * @param bool $regenerateSessionId * @return bool * @throws LoginException */ - public function completeLogin(IUser $user, array $loginDetails) { + public function completeLogin(IUser $user, array $loginDetails, $regenerateSessionId = true) { if (!$user->isEnabled()) { // disabled users can not log in // injecting l10n does not work - there is a circular dependency between session and \OCP\L10N\IFactory @@ -339,7 +340,9 @@ class Session implements IUserSession, Emitter { throw new LoginException($message); } - $this->session->regenerateId(); + if($regenerateSessionId) { + $this->session->regenerateId(); + } $this->setUser($user); $this->setLoginName($loginDetails['loginName']); @@ -536,7 +539,7 @@ class Session implements IUserSession, Emitter { return false; } - return $this->completeLogin($user, ['loginName' => $uid, 'password' => $password]); + return $this->completeLogin($user, ['loginName' => $uid, 'password' => $password], false); } /** @@ -570,7 +573,7 @@ class Session implements IUserSession, Emitter { return false; } - return $this->completeLogin($user, ['loginName' => $uid, 'password' => $password, 'token' => $dbToken]); + return $this->completeLogin($user, ['loginName' => $uid, 'password' => $password, 'token' => $dbToken], false); } /** -- 2.39.5