summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorRobin Appelman <robin@icewind.nl>2021-03-26 15:24:51 +0100
committerArthur Schiwon <blizzz@arthur-schiwon.de>2021-06-16 13:56:25 +0200
commit2bb78da8136d46ad743e14d7b1687e4e6d80f7bf (patch)
tree8fc6efeeeb46953ea61f223adfd091a58010c64b /apps
parent3a645e2d403d2a600b1def52e643a92067f433aa (diff)
downloadnextcloud-server-2bb78da8136d46ad743e14d7b1687e4e6d80f7bf.tar.gz
nextcloud-server-2bb78da8136d46ad743e14d7b1687e4e6d80f7bf.zip
move user/group deleted listeners to new event listener service
Signed-off-by: Robin Appelman <robin@icewind.nl>
Diffstat (limited to 'apps')
-rw-r--r--apps/files_external/lib/AppInfo/Application.php31
-rw-r--r--apps/files_external/lib/Listener/GroupDeletedListener.php45
-rw-r--r--apps/files_external/lib/Listener/UserDeletedListener.php45
3 files changed, 96 insertions, 25 deletions
diff --git a/apps/files_external/lib/AppInfo/Application.php b/apps/files_external/lib/AppInfo/Application.php
index 7bc4440781b..d70e3018e01 100644
--- a/apps/files_external/lib/AppInfo/Application.php
+++ b/apps/files_external/lib/AppInfo/Application.php
@@ -31,6 +31,8 @@ namespace OCA\Files_External\AppInfo;
use OCA\Files_External\Config\ConfigAdapter;
use OCA\Files_External\Config\UserPlaceholderHandler;
+use OCA\Files_External\Listener\GroupDeletedListener;
+use OCA\Files_External\Listener\UserDeletedListener;
use OCA\Files_External\Service\DBConfigService;
use OCA\Files_External\Lib\Auth\AmazonS3\AccessKey;
use OCA\Files_External\Lib\Auth\Builtin;
@@ -67,8 +69,10 @@ use OCP\AppFramework\Bootstrap\IBootContext;
use OCP\AppFramework\Bootstrap\IBootstrap;
use OCP\AppFramework\Bootstrap\IRegistrationContext;
use OCP\Files\Config\IMountProviderCollection;
+use OCP\Group\Events\GroupDeletedEvent;
use OCP\IGroup;
use OCP\IUser;
+use OCP\User\Events\UserDeletedEvent;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\EventDispatcher\GenericEvent;
@@ -103,7 +107,8 @@ class Application extends App implements IBackendProvider, IAuthMechanismProvide
}
public function register(IRegistrationContext $context): void {
- // TODO: Implement register() method.
+ $context->registerEventListener(UserDeletedEvent::class, UserDeletedListener::class);
+ $context->registerEventListener(GroupDeletedEvent::class, GroupDeletedListener::class);
}
public function boot(IBootContext $context): void {
@@ -123,30 +128,6 @@ class Application extends App implements IBackendProvider, IAuthMechanismProvide
$context->injectFn([$this, 'registerListeners']);
}
-
- public function registerListeners(EventDispatcherInterface $dispatcher) {
- $dispatcher->addListener(
- IUser::class . '::postDelete',
- function (GenericEvent $event) {
- /** @var IUser $user */
- $user = $event->getSubject();
- /** @var DBConfigService $config */
- $config = $this->getContainer()->query(DBConfigService::class);
- $config->modifyMountsOnUserDelete($user->getUID());
- }
- );
- $dispatcher->addListener(
- IGroup::class . '::postDelete',
- function (GenericEvent $event) {
- /** @var IGroup $group */
- $group = $event->getSubject();
- /** @var DBConfigService $config */
- $config = $this->getContainer()->query(DBConfigService::class);
- $config->modifyMountsOnGroupDelete($group->getGID());
- }
- );
- }
-
/**
* @{inheritdoc}
*/
diff --git a/apps/files_external/lib/Listener/GroupDeletedListener.php b/apps/files_external/lib/Listener/GroupDeletedListener.php
new file mode 100644
index 00000000000..d274f35d9cf
--- /dev/null
+++ b/apps/files_external/lib/Listener/GroupDeletedListener.php
@@ -0,0 +1,45 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2021 Robin Appelman <robin@icewind.nl>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\Files_External\Listener;
+
+use OCA\Files_External\Service\DBConfigService;
+use OCP\EventDispatcher\Event;
+use OCP\EventDispatcher\IEventListener;
+use OCP\Group\Events\GroupDeletedEvent;
+
+class GroupDeletedListener implements IEventListener {
+ /** @var DBConfigService */
+ private $config;
+
+ public function __construct(DBConfigService $config) {
+ $this->config = $config;
+ }
+
+ public function handle(Event $event): void {
+ if (!$event instanceof GroupDeletedEvent) {
+ return;
+ }
+ $this->config->modifyMountsOnGroupDelete($event->getGroup()->getGID());
+ }
+}
diff --git a/apps/files_external/lib/Listener/UserDeletedListener.php b/apps/files_external/lib/Listener/UserDeletedListener.php
new file mode 100644
index 00000000000..1417119b317
--- /dev/null
+++ b/apps/files_external/lib/Listener/UserDeletedListener.php
@@ -0,0 +1,45 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2021 Robin Appelman <robin@icewind.nl>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\Files_External\Listener;
+
+use OCA\Files_External\Service\DBConfigService;
+use OCP\EventDispatcher\Event;
+use OCP\EventDispatcher\IEventListener;
+use OCP\User\Events\UserDeletedEvent;
+
+class UserDeletedListener implements IEventListener {
+ /** @var DBConfigService */
+ private $config;
+
+ public function __construct(DBConfigService $config) {
+ $this->config = $config;
+ }
+
+ public function handle(Event $event): void {
+ if (!$event instanceof UserDeletedEvent) {
+ return;
+ }
+ $this->config->modifyMountsOnUserDelete($event->getUser()->getUID());
+ }
+}