aboutsummaryrefslogtreecommitdiffstats
path: root/apps/user_ldap
diff options
context:
space:
mode:
authorCôme Chilliet <come.chilliet@nextcloud.com>2022-02-10 13:11:50 +0100
committerCôme Chilliet <come.chilliet@nextcloud.com>2023-10-12 10:13:42 +0200
commit2e52e39aff4426cd62c02b8c2262e39e51fd622e (patch)
treedc34a3dffc4bb7ab3f87102cb2e7ec4fe8c62aa8 /apps/user_ldap
parent474b5e1a058febc18ddf5222f86c741cf09ba29a (diff)
downloadnextcloud-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.php24
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();
}
}
}