diff options
author | Côme Chilliet <come.chilliet@nextcloud.com> | 2022-02-10 13:11:50 +0100 |
---|---|---|
committer | Côme Chilliet <come.chilliet@nextcloud.com> | 2023-10-12 10:13:42 +0200 |
commit | 2e52e39aff4426cd62c02b8c2262e39e51fd622e (patch) | |
tree | dc34a3dffc4bb7ab3f87102cb2e7ec4fe8c62aa8 /apps/user_ldap | |
parent | 474b5e1a058febc18ddf5222f86c741cf09ba29a (diff) | |
download | nextcloud-server-2e52e39aff4426cd62c02b8c2262e39e51fd622e.tar.gz nextcloud-server-2e52e39aff4426cd62c02b8c2262e39e51fd622e.zip |
Use a standard array for the stateful cache
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
Diffstat (limited to 'apps/user_ldap')
-rw-r--r-- | apps/user_ldap/lib/FirstLoginListener.php | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/apps/user_ldap/lib/FirstLoginListener.php b/apps/user_ldap/lib/FirstLoginListener.php index 2bfe4a46c16..997573121ca 100644 --- a/apps/user_ldap/lib/FirstLoginListener.php +++ b/apps/user_ldap/lib/FirstLoginListener.php @@ -37,7 +37,8 @@ use OCP\User\Events\PostLoginEvent; use Psr\Log\LoggerInterface; class FirstLoginListener implements IEventListener { - protected $somekindofstatefulhandler; + /** @var array<string,array<string, int>> */ + private $eventHappened = []; /** @var Group_Proxy */ private $groupBackend; @@ -75,17 +76,17 @@ class FirstLoginListener implements IEventListener { } public function onAssignedId(string $username): void { - $this->somekindofstatefulhandler[$username]['id'] = 1; + $this->eventHappened[$username]['id'] = 1; $this->triggerUpdateGroups($username); } public function onPostLogin(string $username): void { - $this->somekindofstatefulhandler[$username]['login'] = 1; + $this->eventHappened[$username]['login'] = 1; $this->triggerUpdateGroups($username); } private function triggerUpdateGroups(string $username): void { - if (array_sum($this->somekindofstatefulhandler[$username] ?? []) >= 2) { + if (array_sum($this->eventHappened[$username] ?? []) >= 2) { $this->updateGroups($username); } } @@ -108,7 +109,7 @@ class FirstLoginListener implements IEventListener { 'groupId' => $group ]); - $qResult = $qb->execute(); + $qResult = $qb->executeQuery(); $data = $qResult->fetchOne(); $qResult->closeCursor(); @@ -116,6 +117,17 @@ class FirstLoginListener implements IEventListener { $hasChanged = false; $groupObject = $this->groupManager->get($group); + if ($groupObject === null) { + $this->logger->error( + __CLASS__ . ' – group {group} could not be found (user {user})', + [ + 'app' => 'user_ldap', + 'user' => $username, + 'group' => $group + ] + ); + continue; + } if (!in_array($username, $knownUsers)) { $userObject = $this->userManager->get($username); if ($userObject instanceof IUser) { @@ -132,7 +144,7 @@ class FirstLoginListener implements IEventListener { 'members' => serialize(array_merge($knownUsers, [$username])), 'groupId' => $group ]); - $qbUpdate->execute(); + $qbUpdate->executeStatement(); } } } |