diff options
author | Roeland Jago Douma <rullzer@users.noreply.github.com> | 2019-08-08 10:48:59 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-08 10:48:59 +0200 |
commit | 10e2edc734573794d1d90afce3f227d4f32f2902 (patch) | |
tree | c487ad3cdbbab25decaa1c05969b88771cf144ef /apps/files_external | |
parent | b42b26eceb4a2d6aee3c844d3bf057df1d14a77a (diff) | |
parent | 792903e6b3e760588caa7b2311265cb9b275597b (diff) | |
download | nextcloud-server-10e2edc734573794d1d90afce3f227d4f32f2902.tar.gz nextcloud-server-10e2edc734573794d1d90afce3f227d4f32f2902.zip |
Merge pull request #16638 from nextcloud/fix/noid/ldap-ext-storage-handler-loading-cli
delay sending event from app init to when they are needed
Diffstat (limited to 'apps/files_external')
-rw-r--r-- | apps/files_external/lib/AppInfo/Application.php | 6 | ||||
-rw-r--r-- | apps/files_external/lib/Service/BackendService.php | 13 |
2 files changed, 13 insertions, 6 deletions
diff --git a/apps/files_external/lib/AppInfo/Application.php b/apps/files_external/lib/AppInfo/Application.php index 01de6f1e40b..7a9325414d8 100644 --- a/apps/files_external/lib/AppInfo/Application.php +++ b/apps/files_external/lib/AppInfo/Application.php @@ -93,12 +93,6 @@ class Application extends App implements IBackendProvider, IAuthMechanismProvide // force-load auth mechanisms since some will register hooks // TODO: obsolete these and use the TokenProvider to get the user's password from the session $this->getAuthMechanisms(); - - // don't remove this, as app loading order might be a side effect and - // querying the service from the server not reliable - \OC::$server->getEventDispatcher()->dispatch( - 'OCA\\Files_External::loadAdditionalBackends' - ); } /** diff --git a/apps/files_external/lib/Service/BackendService.php b/apps/files_external/lib/Service/BackendService.php index bd4d2bffa7b..59af54f79e4 100644 --- a/apps/files_external/lib/Service/BackendService.php +++ b/apps/files_external/lib/Service/BackendService.php @@ -106,7 +106,18 @@ class BackendService { $this->backendProviders[] = $provider; } + private function callForRegistrations() { + static $eventSent = false; + if(!$eventSent) { + \OC::$server->getEventDispatcher()->dispatch( + 'OCA\\Files_External::loadAdditionalBackends' + ); + $eventSent = true; + } + } + private function loadBackendProviders() { + $this->callForRegistrations(); foreach ($this->backendProviders as $provider) { $this->registerBackends($provider->getBackends()); } @@ -124,6 +135,7 @@ class BackendService { } private function loadAuthMechanismProviders() { + $this->callForRegistrations(); foreach ($this->authMechanismProviders as $provider) { $this->registerAuthMechanisms($provider->getAuthMechanisms()); } @@ -321,6 +333,7 @@ class BackendService { } protected function loadConfigHandlers():void { + $this->callForRegistrations(); $newLoaded = false; foreach ($this->configHandlerLoaders as $placeholder => $loader) { $handler = $loader(); |