Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/password_policy.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRoeland Jago Douma <roeland@famdouma.nl>2017-04-12 18:18:54 +0300
committerRoeland Jago Douma <roeland@famdouma.nl>2017-04-12 18:19:58 +0300
commita263ed4224e115f71168b28a27e58945fba8a44f (patch)
tree88d39a1e8fa2cf082335ce0fc022ea38a23734b8 /lib
parentc9215bac12d4cf88d56432d1fb758a607355f071 (diff)
Make app more lazy
* Created a real Application.php * Only query for all the required components when we receive the event - Saves always loading the l10n stuff for example * Use DI magic to resolve dependencies Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Diffstat (limited to 'lib')
-rw-r--r--lib/AppInfo/Application.php46
1 files changed, 46 insertions, 0 deletions
diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php
new file mode 100644
index 0000000..672aa18
--- /dev/null
+++ b/lib/AppInfo/Application.php
@@ -0,0 +1,46 @@
+<?php
+/**
+ * @copyright 2017, Roeland Jago Douma <roeland@famdouma.nl>
+ *
+ * @author Roeland Jago Douma <roeland@famdouma.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\Password_Policy\AppInfo;
+
+use OCA\Password_Policy\PasswordValidator;
+use OCP\AppFramework\App;
+use Symfony\Component\EventDispatcher\GenericEvent;
+
+class Application extends App {
+ public function __construct() {
+ parent::__construct('password_policy');
+ $container = $this->getContainer();
+
+ $server = $container->getServer();
+ $eventDispatcher = $server->getEventDispatcher();
+
+ $eventDispatcher->addListener('OCP\PasswordPolicy::validate',
+ function(GenericEvent $event) use ($container) {
+ /** @var PasswordValidator $validator */
+ $validator = $container->query(PasswordValidator::class);
+ $validator->validate($event->getSubject());
+ }
+ );
+ }
+}