@@ -36,76 +36,76 @@ |
||
| 36 | 36 | |
| 37 | 37 | class ActionProviderStore { |
| 38 | 38 | |
| 39 | - /** @var IServerContainer */ |
|
| 40 | - private $serverContainer; |
|
| 41 | - |
|
| 42 | - /** @var AppManager */ |
|
| 43 | - private $appManager; |
|
| 44 | - |
|
| 45 | - /** @var LoggerInterface */ |
|
| 46 | - private $logger; |
|
| 47 | - |
|
| 48 | - public function __construct(IServerContainer $serverContainer, AppManager $appManager, LoggerInterface $logger) { |
|
| 49 | - $this->serverContainer = $serverContainer; |
|
| 50 | - $this->appManager = $appManager; |
|
| 51 | - $this->logger = $logger; |
|
| 52 | - } |
|
| 53 | - |
|
| 54 | - /** |
|
| 55 | - * @param IUser $user |
|
| 56 | - * @return IProvider[] |
|
| 57 | - * @throws Exception |
|
| 58 | - */ |
|
| 59 | - public function getProviders(IUser $user): array { |
|
| 60 | - $appClasses = $this->getAppProviderClasses($user); |
|
| 61 | - $providerClasses = $this->getServerProviderClasses(); |
|
| 62 | - $allClasses = array_merge($providerClasses, $appClasses); |
|
| 63 | - $providers = []; |
|
| 64 | - |
|
| 65 | - foreach ($allClasses as $class) { |
|
| 66 | - try { |
|
| 67 | - $providers[] = $this->serverContainer->query($class); |
|
| 68 | - } catch (QueryException $ex) { |
|
| 69 | - $this->logger->error('Could not load contacts menu action provider ' . $class, |
|
| 70 | - [ |
|
| 71 | - 'app' => 'core', |
|
| 72 | - 'exception' => $ex, |
|
| 73 | - ] |
|
| 74 | - ); |
|
| 75 | - throw new Exception('Could not load contacts menu action provider'); |
|
| 76 | - } |
|
| 77 | - } |
|
| 78 | - |
|
| 79 | - return $providers; |
|
| 80 | - } |
|
| 81 | - |
|
| 82 | - /** |
|
| 83 | - * @return string[] |
|
| 84 | - */ |
|
| 85 | - private function getServerProviderClasses(): array { |
|
| 86 | - return [ |
|
| 87 | - EMailProvider::class, |
|
| 88 | - ]; |
|
| 89 | - } |
|
| 90 | - |
|
| 91 | - /** |
|
| 92 | - * @param IUser $user |
|
| 93 | - * @return string[] |
|
| 94 | - */ |
|
| 95 | - private function getAppProviderClasses(IUser $user): array { |
|
| 96 | - return array_reduce($this->appManager->getEnabledAppsForUser($user), function ($all, $appId) { |
|
| 97 | - $info = $this->appManager->getAppInfo($appId); |
|
| 98 | - |
|
| 99 | - if (!isset($info['contactsmenu'])) { |
|
| 100 | - // Nothing to add |
|
| 101 | - return $all; |
|
| 102 | - } |
|
| 103 | - |
|
| 104 | - $providers = array_reduce($info['contactsmenu'], function ($all, $provider) { |
|
| 105 | - return array_merge($all, [$provider]); |
|
| 106 | - }, []); |
|
| 107 | - |
|
| 108 | - return array_merge($all, $providers); |
|
| 109 | - }, []); |
|
| 110 | - } |
|
| 39 | + /** @var IServerContainer */ |
|
| 40 | + private $serverContainer; |
|
| 41 | + |
|
| 42 | + /** @var AppManager */ |
|
| 43 | + private $appManager; |
|
| 44 | + |
|
| 45 | + /** @var LoggerInterface */ |
|
| 46 | + private $logger; |
|
| 47 | + |
|
| 48 | + public function __construct(IServerContainer $serverContainer, AppManager $appManager, LoggerInterface $logger) { |
|
| 49 | + $this->serverContainer = $serverContainer; |
|
| 50 | + $this->appManager = $appManager; |
|
| 51 | + $this->logger = $logger; |
|
| 52 | + } |
|
| 53 | + |
|
| 54 | + /** |
|
| 55 | + * @param IUser $user |
|
| 56 | + * @return IProvider[] |
|
| 57 | + * @throws Exception |
|
| 58 | + */ |
|
| 59 | + public function getProviders(IUser $user): array { |
|
| 60 | + $appClasses = $this->getAppProviderClasses($user); |
|
| 61 | + $providerClasses = $this->getServerProviderClasses(); |
|
| 62 | + $allClasses = array_merge($providerClasses, $appClasses); |
|
| 63 | + $providers = []; |
|
| 64 | + |
|
| 65 | + foreach ($allClasses as $class) { |
|
| 66 | + try { |
|
| 67 | + $providers[] = $this->serverContainer->query($class); |
|
| 68 | + } catch (QueryException $ex) { |
|
| 69 | + $this->logger->error('Could not load contacts menu action provider ' . $class, |
|
| 70 | + [ |
|
| 71 | + 'app' => 'core', |
|
| 72 | + 'exception' => $ex, |
|
| 73 | + ] |
|
| 74 | + ); |
|
| 75 | + throw new Exception('Could not load contacts menu action provider'); |
|
| 76 | + } |
|
| 77 | + } |
|
| 78 | + |
|
| 79 | + return $providers; |
|
| 80 | + } |
|
| 81 | + |
|
| 82 | + /** |
|
| 83 | + * @return string[] |
|
| 84 | + */ |
|
| 85 | + private function getServerProviderClasses(): array { |
|
| 86 | + return [ |
|
| 87 | + EMailProvider::class, |
|
| 88 | + ]; |
|
| 89 | + } |
|
| 90 | + |
|
| 91 | + /** |
|
| 92 | + * @param IUser $user |
|
| 93 | + * @return string[] |
|
| 94 | + */ |
|
| 95 | + private function getAppProviderClasses(IUser $user): array { |
|
| 96 | + return array_reduce($this->appManager->getEnabledAppsForUser($user), function ($all, $appId) { |
|
| 97 | + $info = $this->appManager->getAppInfo($appId); |
|
| 98 | + |
|
| 99 | + if (!isset($info['contactsmenu'])) { |
|
| 100 | + // Nothing to add |
|
| 101 | + return $all; |
|
| 102 | + } |
|
| 103 | + |
|
| 104 | + $providers = array_reduce($info['contactsmenu'], function ($all, $provider) { |
|
| 105 | + return array_merge($all, [$provider]); |
|
| 106 | + }, []); |
|
| 107 | + |
|
| 108 | + return array_merge($all, $providers); |
|
| 109 | + }, []); |
|
| 110 | + } |
|
| 111 | 111 | } |
@@ -66,7 +66,7 @@ discard block |
||
| 66 | 66 | try { |
| 67 | 67 | $providers[] = $this->serverContainer->query($class); |
| 68 | 68 | } catch (QueryException $ex) { |
| 69 | - $this->logger->error('Could not load contacts menu action provider ' . $class, |
|
| 69 | + $this->logger->error('Could not load contacts menu action provider '.$class, |
|
| 70 | 70 | [ |
| 71 | 71 | 'app' => 'core', |
| 72 | 72 | 'exception' => $ex, |
@@ -93,7 +93,7 @@ discard block |
||
| 93 | 93 | * @return string[] |
| 94 | 94 | */ |
| 95 | 95 | private function getAppProviderClasses(IUser $user): array { |
| 96 | - return array_reduce($this->appManager->getEnabledAppsForUser($user), function ($all, $appId) { |
|
| 96 | + return array_reduce($this->appManager->getEnabledAppsForUser($user), function($all, $appId) { |
|
| 97 | 97 | $info = $this->appManager->getAppInfo($appId); |
| 98 | 98 | |
| 99 | 99 | if (!isset($info['contactsmenu'])) { |
@@ -101,7 +101,7 @@ discard block |
||
| 101 | 101 | return $all; |
| 102 | 102 | } |
| 103 | 103 | |
| 104 | - $providers = array_reduce($info['contactsmenu'], function ($all, $provider) { |
|
| 104 | + $providers = array_reduce($info['contactsmenu'], function($all, $provider) { |
|
| 105 | 105 | return array_merge($all, [$provider]); |
| 106 | 106 | }, []); |
| 107 | 107 | |