From e9e55a1da1ff1e6bf829e1780a507306a97c430c Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Tue, 26 Jan 2021 14:45:50 +0100 Subject: [PATCH] improve performance by reusing existing sessions Signed-off-by: Arthur Schiwon --- lib/UserBackend.php | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/UserBackend.php b/lib/UserBackend.php index e03c260..6dd1a36 100644 --- a/lib/UserBackend.php +++ b/lib/UserBackend.php @@ -389,10 +389,7 @@ class UserBackend implements IApacheBackend, UserInterface, IUserBackend { * @since 6.0.0 */ public function isSessionActive() { - if($this->getCurrentUserId() !== '') { - return true; - } - return false; + return $this->session->get('user_saml.samlUserData') !== null; } /** @@ -487,8 +484,15 @@ class UserBackend implements IApacheBackend, UserInterface, IUserBackend { * @since 6.0.0 */ public function getCurrentUserId() { - $this->userData->setAttributes($this->session->get('user_saml.samlUserData') ?? []); - $uid = $this->userData->getEffectiveUid(); + $user = \OC::$server->getUserSession()->getUser(); + + if($user instanceof IUser && $this->session->get('user_saml.samlUserData')) { + $uid = $user->getUID(); + } else { + $this->userData->setAttributes($this->session->get('user_saml.samlUserData') ?? []); + $uid = $this->userData->getEffectiveUid(); + } + if($uid !== '' && $this->userExists($uid)) { $uid = $this->userData->testEncodedObjectGUID($uid);