Passed
Push — master ( 495329...2abeff )
by Daniel
17:26 queued 12s
created
apps/user_ldap/lib/Jobs/UpdateGroups.php 1 patch
Indentation   +209 added lines, -209 removed lines patch added patch discarded remove patch
@@ -44,235 +44,235 @@
 block discarded – undo
44 44
 use Psr\Log\LoggerInterface;
45 45
 
46 46
 class UpdateGroups extends TimedJob {
47
-	/** @var ?array<string, array{owncloudusers: string, owncloudname: string}>  */
48
-	private ?array $groupsFromDB = null;
49
-	private Group_Proxy $groupBackend;
50
-	private IEventDispatcher $dispatcher;
51
-	private IGroupManager $groupManager;
52
-	private IUserManager $userManager;
53
-	private LoggerInterface $logger;
54
-	private IDBConnection $dbc;
47
+    /** @var ?array<string, array{owncloudusers: string, owncloudname: string}>  */
48
+    private ?array $groupsFromDB = null;
49
+    private Group_Proxy $groupBackend;
50
+    private IEventDispatcher $dispatcher;
51
+    private IGroupManager $groupManager;
52
+    private IUserManager $userManager;
53
+    private LoggerInterface $logger;
54
+    private IDBConnection $dbc;
55 55
 
56
-	public function __construct(
57
-		Group_Proxy $groupBackend,
58
-		IEventDispatcher $dispatcher,
59
-		IGroupManager $groupManager,
60
-		IUserManager $userManager,
61
-		LoggerInterface $logger,
62
-		IDBConnection $dbc,
63
-		IConfig $config,
64
-		ITimeFactory $timeFactory
65
-	) {
66
-		parent::__construct($timeFactory);
67
-		$this->interval = (int)$config->getAppValue('user_ldap', 'bgjRefreshInterval', '3600');
68
-		$this->groupBackend = $groupBackend;
69
-		$this->dispatcher = $dispatcher;
70
-		$this->groupManager = $groupManager;
71
-		$this->userManager = $userManager;
72
-		$this->logger = $logger;
73
-		$this->dbc = $dbc;
74
-	}
56
+    public function __construct(
57
+        Group_Proxy $groupBackend,
58
+        IEventDispatcher $dispatcher,
59
+        IGroupManager $groupManager,
60
+        IUserManager $userManager,
61
+        LoggerInterface $logger,
62
+        IDBConnection $dbc,
63
+        IConfig $config,
64
+        ITimeFactory $timeFactory
65
+    ) {
66
+        parent::__construct($timeFactory);
67
+        $this->interval = (int)$config->getAppValue('user_ldap', 'bgjRefreshInterval', '3600');
68
+        $this->groupBackend = $groupBackend;
69
+        $this->dispatcher = $dispatcher;
70
+        $this->groupManager = $groupManager;
71
+        $this->userManager = $userManager;
72
+        $this->logger = $logger;
73
+        $this->dbc = $dbc;
74
+    }
75 75
 
76
-	/**
77
-	 * @param mixed $argument
78
-	 * @throws Exception
79
-	 */
80
-	public function run($argument): void {
81
-		$this->updateGroups();
82
-	}
76
+    /**
77
+     * @param mixed $argument
78
+     * @throws Exception
79
+     */
80
+    public function run($argument): void {
81
+        $this->updateGroups();
82
+    }
83 83
 
84
-	/**
85
-	 * @throws Exception
86
-	 */
87
-	public function updateGroups(): void {
88
-		$this->logger->debug(
89
-			'Run background job "updateGroups"',
90
-			['app' => 'user_ldap']
91
-		);
84
+    /**
85
+     * @throws Exception
86
+     */
87
+    public function updateGroups(): void {
88
+        $this->logger->debug(
89
+            'Run background job "updateGroups"',
90
+            ['app' => 'user_ldap']
91
+        );
92 92
 
93
-		/** @var string[] $knownGroups */
94
-		$knownGroups = array_keys($this->getKnownGroups());
95
-		$actualGroups = $this->groupBackend->getGroups();
93
+        /** @var string[] $knownGroups */
94
+        $knownGroups = array_keys($this->getKnownGroups());
95
+        $actualGroups = $this->groupBackend->getGroups();
96 96
 
97
-		if (empty($actualGroups) && empty($knownGroups)) {
98
-			$this->logger->info(
99
-				'bgJ "updateGroups" – groups do not seem to be configured properly, aborting.',
100
-				['app' => 'user_ldap']
101
-			);
102
-			return;
103
-		}
97
+        if (empty($actualGroups) && empty($knownGroups)) {
98
+            $this->logger->info(
99
+                'bgJ "updateGroups" – groups do not seem to be configured properly, aborting.',
100
+                ['app' => 'user_ldap']
101
+            );
102
+            return;
103
+        }
104 104
 
105
-		$this->handleKnownGroups(array_intersect($actualGroups, $knownGroups));
106
-		$this->handleCreatedGroups(array_diff($actualGroups, $knownGroups));
107
-		$this->handleRemovedGroups(array_diff($knownGroups, $actualGroups));
105
+        $this->handleKnownGroups(array_intersect($actualGroups, $knownGroups));
106
+        $this->handleCreatedGroups(array_diff($actualGroups, $knownGroups));
107
+        $this->handleRemovedGroups(array_diff($knownGroups, $actualGroups));
108 108
 
109
-		$this->logger->debug(
110
-			'bgJ "updateGroups" – Finished.',
111
-			['app' => 'user_ldap']
112
-		);
113
-	}
109
+        $this->logger->debug(
110
+            'bgJ "updateGroups" – Finished.',
111
+            ['app' => 'user_ldap']
112
+        );
113
+    }
114 114
 
115
-	/**
116
-	 * @return array<string, array{owncloudusers: string, owncloudname: string}>
117
-	 * @throws Exception
118
-	 */
119
-	private function getKnownGroups(): array {
120
-		if (is_array($this->groupsFromDB)) {
121
-			return $this->groupsFromDB;
122
-		}
123
-		$qb = $this->dbc->getQueryBuilder();
124
-		$qb->select(['owncloudname', 'owncloudusers'])
125
-			->from('ldap_group_members');
115
+    /**
116
+     * @return array<string, array{owncloudusers: string, owncloudname: string}>
117
+     * @throws Exception
118
+     */
119
+    private function getKnownGroups(): array {
120
+        if (is_array($this->groupsFromDB)) {
121
+            return $this->groupsFromDB;
122
+        }
123
+        $qb = $this->dbc->getQueryBuilder();
124
+        $qb->select(['owncloudname', 'owncloudusers'])
125
+            ->from('ldap_group_members');
126 126
 
127
-		$qResult = $qb->executeQuery();
128
-		$result = $qResult->fetchAll();
129
-		$qResult->closeCursor();
127
+        $qResult = $qb->executeQuery();
128
+        $result = $qResult->fetchAll();
129
+        $qResult->closeCursor();
130 130
 
131
-		$this->groupsFromDB = [];
132
-		foreach ($result as $dataset) {
133
-			$this->groupsFromDB[$dataset['owncloudname']] = $dataset;
134
-		}
131
+        $this->groupsFromDB = [];
132
+        foreach ($result as $dataset) {
133
+            $this->groupsFromDB[$dataset['owncloudname']] = $dataset;
134
+        }
135 135
 
136
-		return $this->groupsFromDB;
137
-	}
136
+        return $this->groupsFromDB;
137
+    }
138 138
 
139
-	/**
140
-	 * @param string[] $groups
141
-	 * @throws Exception
142
-	 */
143
-	private function handleKnownGroups(array $groups): void {
144
-		$this->logger->debug(
145
-			'bgJ "updateGroups" – Dealing with known Groups.',
146
-			['app' => 'user_ldap']
147
-		);
148
-		$qb = $this->dbc->getQueryBuilder();
149
-		$qb->update('ldap_group_members')
150
-			->set('owncloudusers', $qb->createParameter('members'))
151
-			->where($qb->expr()->eq('owncloudname', $qb->createParameter('groupId')));
139
+    /**
140
+     * @param string[] $groups
141
+     * @throws Exception
142
+     */
143
+    private function handleKnownGroups(array $groups): void {
144
+        $this->logger->debug(
145
+            'bgJ "updateGroups" – Dealing with known Groups.',
146
+            ['app' => 'user_ldap']
147
+        );
148
+        $qb = $this->dbc->getQueryBuilder();
149
+        $qb->update('ldap_group_members')
150
+            ->set('owncloudusers', $qb->createParameter('members'))
151
+            ->where($qb->expr()->eq('owncloudname', $qb->createParameter('groupId')));
152 152
 
153
-		$groupsFromDB = $this->getKnownGroups();
154
-		foreach ($groups as $group) {
155
-			$knownUsers = unserialize($groupsFromDB[$group]['owncloudusers']);
156
-			$actualUsers = $this->groupBackend->usersInGroup($group);
157
-			$hasChanged = false;
153
+        $groupsFromDB = $this->getKnownGroups();
154
+        foreach ($groups as $group) {
155
+            $knownUsers = unserialize($groupsFromDB[$group]['owncloudusers']);
156
+            $actualUsers = $this->groupBackend->usersInGroup($group);
157
+            $hasChanged = false;
158 158
 
159
-			$groupObject = $this->groupManager->get($group);
160
-			if ($groupObject === null) {
161
-				/* We are not expecting the group to not be found since it was returned by $this->groupBackend->getGroups() */
162
-				$this->logger->error(
163
-					'bgJ "updateGroups" – Failed to get group {group} for update',
164
-					[
165
-						'app' => 'user_ldap',
166
-						'group' => $group
167
-					]
168
-				);
169
-				continue;
170
-			}
171
-			foreach (array_diff($knownUsers, $actualUsers) as $removedUser) {
172
-				$userObject = $this->userManager->get($removedUser);
173
-				if ($userObject instanceof IUser) {
174
-					$this->dispatcher->dispatchTyped(new UserRemovedEvent($groupObject, $userObject));
175
-				}
176
-				$this->logger->info(
177
-					'bgJ "updateGroups" – {user} removed from {group}',
178
-					[
179
-						'app' => 'user_ldap',
180
-						'user' => $removedUser,
181
-						'group' => $group
182
-					]
183
-				);
184
-				$hasChanged = true;
185
-			}
186
-			foreach (array_diff($actualUsers, $knownUsers) as $addedUser) {
187
-				$userObject = $this->userManager->get($addedUser);
188
-				if ($userObject instanceof IUser) {
189
-					$this->dispatcher->dispatchTyped(new UserAddedEvent($groupObject, $userObject));
190
-				}
191
-				$this->logger->info(
192
-					'bgJ "updateGroups" – {user} added to {group}',
193
-					[
194
-						'app' => 'user_ldap',
195
-						'user' => $addedUser,
196
-						'group' => $group
197
-					]
198
-				);
199
-				$hasChanged = true;
200
-			}
201
-			if ($hasChanged) {
202
-				$qb->setParameters([
203
-					'members' => serialize($actualUsers),
204
-					'groupId' => $group
205
-				]);
206
-				$qb->executeStatement();
207
-			}
208
-		}
209
-		$this->logger->debug(
210
-			'bgJ "updateGroups" – FINISHED dealing with known Groups.',
211
-			['app' => 'user_ldap']
212
-		);
213
-	}
159
+            $groupObject = $this->groupManager->get($group);
160
+            if ($groupObject === null) {
161
+                /* We are not expecting the group to not be found since it was returned by $this->groupBackend->getGroups() */
162
+                $this->logger->error(
163
+                    'bgJ "updateGroups" – Failed to get group {group} for update',
164
+                    [
165
+                        'app' => 'user_ldap',
166
+                        'group' => $group
167
+                    ]
168
+                );
169
+                continue;
170
+            }
171
+            foreach (array_diff($knownUsers, $actualUsers) as $removedUser) {
172
+                $userObject = $this->userManager->get($removedUser);
173
+                if ($userObject instanceof IUser) {
174
+                    $this->dispatcher->dispatchTyped(new UserRemovedEvent($groupObject, $userObject));
175
+                }
176
+                $this->logger->info(
177
+                    'bgJ "updateGroups" – {user} removed from {group}',
178
+                    [
179
+                        'app' => 'user_ldap',
180
+                        'user' => $removedUser,
181
+                        'group' => $group
182
+                    ]
183
+                );
184
+                $hasChanged = true;
185
+            }
186
+            foreach (array_diff($actualUsers, $knownUsers) as $addedUser) {
187
+                $userObject = $this->userManager->get($addedUser);
188
+                if ($userObject instanceof IUser) {
189
+                    $this->dispatcher->dispatchTyped(new UserAddedEvent($groupObject, $userObject));
190
+                }
191
+                $this->logger->info(
192
+                    'bgJ "updateGroups" – {user} added to {group}',
193
+                    [
194
+                        'app' => 'user_ldap',
195
+                        'user' => $addedUser,
196
+                        'group' => $group
197
+                    ]
198
+                );
199
+                $hasChanged = true;
200
+            }
201
+            if ($hasChanged) {
202
+                $qb->setParameters([
203
+                    'members' => serialize($actualUsers),
204
+                    'groupId' => $group
205
+                ]);
206
+                $qb->executeStatement();
207
+            }
208
+        }
209
+        $this->logger->debug(
210
+            'bgJ "updateGroups" – FINISHED dealing with known Groups.',
211
+            ['app' => 'user_ldap']
212
+        );
213
+    }
214 214
 
215
-	/**
216
-	 * @param string[] $createdGroups
217
-	 * @throws Exception
218
-	 */
219
-	private function handleCreatedGroups(array $createdGroups): void {
220
-		$this->logger->debug(
221
-			'bgJ "updateGroups" – dealing with created Groups.',
222
-			['app' => 'user_ldap']
223
-		);
215
+    /**
216
+     * @param string[] $createdGroups
217
+     * @throws Exception
218
+     */
219
+    private function handleCreatedGroups(array $createdGroups): void {
220
+        $this->logger->debug(
221
+            'bgJ "updateGroups" – dealing with created Groups.',
222
+            ['app' => 'user_ldap']
223
+        );
224 224
 
225
-		$query = $this->dbc->getQueryBuilder();
226
-		$query->insert('ldap_group_members')
227
-			->setValue('owncloudname', $query->createParameter('owncloudname'))
228
-			->setValue('owncloudusers', $query->createParameter('owncloudusers'));
225
+        $query = $this->dbc->getQueryBuilder();
226
+        $query->insert('ldap_group_members')
227
+            ->setValue('owncloudname', $query->createParameter('owncloudname'))
228
+            ->setValue('owncloudusers', $query->createParameter('owncloudusers'));
229 229
 
230
-		foreach ($createdGroups as $createdGroup) {
231
-			$this->logger->info(
232
-				'bgJ "updateGroups" – new group "' . $createdGroup . '" found.',
233
-				['app' => 'user_ldap']
234
-			);
235
-			$users = serialize($this->groupBackend->usersInGroup($createdGroup));
230
+        foreach ($createdGroups as $createdGroup) {
231
+            $this->logger->info(
232
+                'bgJ "updateGroups" – new group "' . $createdGroup . '" found.',
233
+                ['app' => 'user_ldap']
234
+            );
235
+            $users = serialize($this->groupBackend->usersInGroup($createdGroup));
236 236
 
237
-			$query->setParameter('owncloudname', $createdGroup)
238
-				->setParameter('owncloudusers', $users);
239
-			$query->executeStatement();
240
-		}
241
-		$this->logger->debug(
242
-			'bgJ "updateGroups" – FINISHED dealing with created Groups.',
243
-			['app' => 'user_ldap']
244
-		);
245
-	}
237
+            $query->setParameter('owncloudname', $createdGroup)
238
+                ->setParameter('owncloudusers', $users);
239
+            $query->executeStatement();
240
+        }
241
+        $this->logger->debug(
242
+            'bgJ "updateGroups" – FINISHED dealing with created Groups.',
243
+            ['app' => 'user_ldap']
244
+        );
245
+    }
246 246
 
247
-	/**
248
-	 * @param string[] $removedGroups
249
-	 * @throws Exception
250
-	 */
251
-	private function handleRemovedGroups(array $removedGroups): void {
252
-		$this->logger->debug(
253
-			'bgJ "updateGroups" – dealing with removed groups.',
254
-			['app' => 'user_ldap']
255
-		);
247
+    /**
248
+     * @param string[] $removedGroups
249
+     * @throws Exception
250
+     */
251
+    private function handleRemovedGroups(array $removedGroups): void {
252
+        $this->logger->debug(
253
+            'bgJ "updateGroups" – dealing with removed groups.',
254
+            ['app' => 'user_ldap']
255
+        );
256 256
 
257
-		$query = $this->dbc->getQueryBuilder();
258
-		$query->delete('ldap_group_members')
259
-			->where($query->expr()->in('owncloudname', $query->createParameter('owncloudnames')));
257
+        $query = $this->dbc->getQueryBuilder();
258
+        $query->delete('ldap_group_members')
259
+            ->where($query->expr()->in('owncloudname', $query->createParameter('owncloudnames')));
260 260
 
261
-		foreach (array_chunk($removedGroups, 1000) as $removedGroupsChunk) {
262
-			$this->logger->info(
263
-				'bgJ "updateGroups" – groups {removedGroups} were removed.',
264
-				[
265
-					'app' => 'user_ldap',
266
-					'removedGroups' => $removedGroupsChunk
267
-				]
268
-			);
269
-			$query->setParameter('owncloudnames', $removedGroupsChunk, IQueryBuilder::PARAM_STR_ARRAY);
270
-			$query->executeStatement();
271
-		}
261
+        foreach (array_chunk($removedGroups, 1000) as $removedGroupsChunk) {
262
+            $this->logger->info(
263
+                'bgJ "updateGroups" – groups {removedGroups} were removed.',
264
+                [
265
+                    'app' => 'user_ldap',
266
+                    'removedGroups' => $removedGroupsChunk
267
+                ]
268
+            );
269
+            $query->setParameter('owncloudnames', $removedGroupsChunk, IQueryBuilder::PARAM_STR_ARRAY);
270
+            $query->executeStatement();
271
+        }
272 272
 
273
-		$this->logger->debug(
274
-			'bgJ "updateGroups" – FINISHED dealing with removed groups.',
275
-			['app' => 'user_ldap']
276
-		);
277
-	}
273
+        $this->logger->debug(
274
+            'bgJ "updateGroups" – FINISHED dealing with removed groups.',
275
+            ['app' => 'user_ldap']
276
+        );
277
+    }
278 278
 }
Please login to merge, or discard this patch.