]> source.dussan.org Git - nextcloud-server.git/commitdiff
provide event class to LDAP loaded event to fix deprecation message 22221/head
authorArthur Schiwon <blizzz@arthur-schiwon.de>
Wed, 12 Aug 2020 13:07:55 +0000 (15:07 +0200)
committerArthur Schiwon <blizzz@arthur-schiwon.de>
Wed, 12 Aug 2020 13:38:47 +0000 (15:38 +0200)
* and also dispatch the typed event as current approach to it

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
apps/user_ldap/composer/composer/autoload_classmap.php
apps/user_ldap/composer/composer/autoload_static.php
apps/user_ldap/lib/AppInfo/Application.php
apps/user_ldap/lib/Events/GroupBackendRegistered.php [new file with mode: 0644]
apps/user_ldap/lib/Events/UserBackendRegistered.php [new file with mode: 0644]

index 2190b24688e09ec6a864f4155313e7d19041da5d..f6d9777ab00b9bfd34681b27f5e3bf14d8ea0301 100644 (file)
@@ -23,6 +23,8 @@ return array(
     'OCA\\User_LDAP\\ConnectionFactory' => $baseDir . '/../lib/ConnectionFactory.php',
     'OCA\\User_LDAP\\Controller\\ConfigAPIController' => $baseDir . '/../lib/Controller/ConfigAPIController.php',
     'OCA\\User_LDAP\\Controller\\RenewPasswordController' => $baseDir . '/../lib/Controller/RenewPasswordController.php',
+    'OCA\\User_LDAP\\Events\\GroupBackendRegistered' => $baseDir . '/../lib/Events/GroupBackendRegistered.php',
+    'OCA\\User_LDAP\\Events\\UserBackendRegistered' => $baseDir . '/../lib/Events/UserBackendRegistered.php',
     'OCA\\User_LDAP\\Exceptions\\AttributeNotSet' => $baseDir . '/../lib/Exceptions/AttributeNotSet.php',
     'OCA\\User_LDAP\\Exceptions\\ConstraintViolationException' => $baseDir . '/../lib/Exceptions/ConstraintViolationException.php',
     'OCA\\User_LDAP\\Exceptions\\NotOnLDAP' => $baseDir . '/../lib/Exceptions/NotOnLDAP.php',
index 2f77aebad3117a22f2d71026aa70448500d75ad5..c3d17e86881d6f008edebf15c64f7eff49f45150 100644 (file)
@@ -38,6 +38,8 @@ class ComposerStaticInitUser_LDAP
         'OCA\\User_LDAP\\ConnectionFactory' => __DIR__ . '/..' . '/../lib/ConnectionFactory.php',
         'OCA\\User_LDAP\\Controller\\ConfigAPIController' => __DIR__ . '/..' . '/../lib/Controller/ConfigAPIController.php',
         'OCA\\User_LDAP\\Controller\\RenewPasswordController' => __DIR__ . '/..' . '/../lib/Controller/RenewPasswordController.php',
+        'OCA\\User_LDAP\\Events\\GroupBackendRegistered' => __DIR__ . '/..' . '/../lib/Events/GroupBackendRegistered.php',
+        'OCA\\User_LDAP\\Events\\UserBackendRegistered' => __DIR__ . '/..' . '/../lib/Events/UserBackendRegistered.php',
         'OCA\\User_LDAP\\Exceptions\\AttributeNotSet' => __DIR__ . '/..' . '/../lib/Exceptions/AttributeNotSet.php',
         'OCA\\User_LDAP\\Exceptions\\ConstraintViolationException' => __DIR__ . '/..' . '/../lib/Exceptions/ConstraintViolationException.php',
         'OCA\\User_LDAP\\Exceptions\\NotOnLDAP' => __DIR__ . '/..' . '/../lib/Exceptions/NotOnLDAP.php',
index 7086bb08ee557387cef542b6cbc855aec5447c61..cb0fec69600a68dca6c57d62685416acf6eb9456 100644 (file)
@@ -29,6 +29,8 @@ namespace OCA\User_LDAP\AppInfo;
 use Closure;
 use OCA\Files_External\Service\BackendService;
 use OCA\User_LDAP\Controller\RenewPasswordController;
+use OCA\User_LDAP\Events\GroupBackendRegistered;
+use OCA\User_LDAP\Events\UserBackendRegistered;
 use OCA\User_LDAP\Group_Proxy;
 use OCA\User_LDAP\GroupPluginManager;
 use OCA\User_LDAP\Handler\ExtStorageConfigHandler;
@@ -43,6 +45,7 @@ use OCP\AppFramework\Bootstrap\IBootContext;
 use OCP\AppFramework\Bootstrap\IBootstrap;
 use OCP\AppFramework\Bootstrap\IRegistrationContext;
 use OCP\AppFramework\IAppContainer;
+use OCP\EventDispatcher\IEventDispatcher;
 use OCP\IConfig;
 use OCP\IGroupManager;
 use OCP\IL10N;
@@ -87,7 +90,8 @@ class Application extends App implements IBootstrap {
                                                                         INotificationManager $notificationManager,
                                                                         IUserSession $userSession,
                                                                         IAppContainer $appContainer,
-                                                                        EventDispatcherInterface $dispatcher,
+                                                                        EventDispatcherInterface $legacyDispatcher,
+                                                                        IEventDispatcher $dispatcher,
                                                                         IGroupManager $groupManager) {
                        $helper = new Helper($config);
                        $configPrefixes = $helper->getServerConfigurationPrefixes(true);
@@ -103,13 +107,15 @@ class Application extends App implements IBootstrap {
                                        $configPrefixes, $ldapWrapper, $config, $notificationManager, $userSession, $userPluginManager
                                );
                                $groupBackend = new Group_Proxy($configPrefixes, $ldapWrapper, $groupPluginManager);
-                               // register user backend
-                               \OC_User::useBackend($userBackend);
 
-                               // Hook to allow plugins to work on registered backends
-                               $dispatcher->dispatch('OCA\\User_LDAP\\User\\User::postLDAPBackendAdded');
+                               \OC_User::useBackend($userBackend);
+                               $userBackendRegisteredEvent = new UserBackendRegistered($userBackend, $userPluginManager);
+                               $dispatcher->dispatchTyped($userBackendRegisteredEvent);
+                               $legacyDispatcher->dispatch('OCA\\User_LDAP\\User\\User::postLDAPBackendAdded', $userBackendRegisteredEvent);
 
                                $groupManager->addBackend($groupBackend);
+                               $groupBackendRegisteredEvent = new GroupBackendRegistered($groupBackend, $groupPluginManager);
+                               $dispatcher->dispatchTyped($groupBackendRegisteredEvent);
                        }
                });
 
diff --git a/apps/user_ldap/lib/Events/GroupBackendRegistered.php b/apps/user_ldap/lib/Events/GroupBackendRegistered.php
new file mode 100644 (file)
index 0000000..f6c9959
--- /dev/null
@@ -0,0 +1,51 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2020 Arthur Schiwon <blizzz@arthur-schiwon.de>
+ *
+ * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
+ *
+ * @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\User_LDAP\Events;
+
+use OCA\User_LDAP\GroupPluginManager;
+use OCA\User_LDAP\IGroupLDAP;
+use OCP\EventDispatcher\Event;
+
+class GroupBackendRegistered extends Event {
+
+       /** @var GroupPluginManager */
+       private $pluginManager;
+       /** @var IGroupLDAP */
+       private $backend;
+
+       public function __construct(IGroupLDAP $backend, GroupPluginManager $pluginManager) {
+               $this->pluginManager = $pluginManager;
+               $this->backend = $backend;
+       }
+
+       public function getBackend(): IGroupLDAP {
+               return $this->backend;
+       }
+
+       public function getPluginManager(): GroupPluginManager {
+               return $this->pluginManager;
+       }
+}
diff --git a/apps/user_ldap/lib/Events/UserBackendRegistered.php b/apps/user_ldap/lib/Events/UserBackendRegistered.php
new file mode 100644 (file)
index 0000000..a80d2a3
--- /dev/null
@@ -0,0 +1,51 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * @copyright Copyright (c) 2020 Arthur Schiwon <blizzz@arthur-schiwon.de>
+ *
+ * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
+ *
+ * @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\User_LDAP\Events;
+
+use OCA\User_LDAP\IUserLDAP;
+use OCA\User_LDAP\UserPluginManager;
+use OCP\EventDispatcher\Event;
+
+class UserBackendRegistered extends Event {
+
+       /** @var IUserLDAP */
+       private $backend;
+       /** @var UserPluginManager */
+       private $pluginManager;
+
+       public function __construct(IUserLDAP $backend, UserPluginManager $pluginManager) {
+               $this->backend = $backend;
+               $this->pluginManager = $pluginManager;
+       }
+
+       public function getBackend(): IUserLDAP {
+               return $this->backend;
+       }
+
+       public function getPluginManager(): UserPluginManager {
+               return $this->pluginManager;
+       }
+}