From ddb7cc40ce2dd11e8b351b587ba7ba1cbaa1b3a1 Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Thu, 6 Aug 2020 15:00:24 +0200 Subject: [PATCH] refactor appinfo --- appinfo/app.php | 70 ++-------------------- lib/AppInfo/Application.php | 114 ++++++++++++++++++++++++++++++++++++ 2 files changed, 118 insertions(+), 66 deletions(-) create mode 100644 lib/AppInfo/Application.php diff --git a/appinfo/app.php b/appinfo/app.php index 86a3245..458237a 100644 --- a/appinfo/app.php +++ b/appinfo/app.php @@ -1,71 +1,9 @@ . - */ +use OCA\SideMenu\AppInfo\Application; -namespace OCA\SideMenu\Appinfo; +$app = new Application(); -use OC\Security\CSP\ContentSecurityPolicy; -use OCP\Util; -use OCP\IUserSession; - -$config = \OC::$server->getConfig(); -$cspnm = \OC::$server->getContentSecurityPolicyNonceManager(); -$user = \OC::$server[IUserSession::class]->getUser(); - -$enabled = true; - -if ($user !== null) { - $enabled = (bool) $config->getUserValue($user->getUid(), 'side_menu', 'enabled', '1'); -} - -if ($enabled) { - Util::addScript('side_menu', 'sideMenu'); - Util::addStyle('side_menu', 'sideMenu'); - - $stylesheet = \OC::$server->getURLGenerator()->linkToRoute( - 'side_menu.Css.stylesheet', - [ - 'v' => $config->getAppValue('side_menu', 'cache', '0'), - ] - ); - - $script = \OC::$server->getURLGenerator()->linkToRoute( - 'side_menu.Js.script', - [ - 'v' => $config->getAppValue('side_menu', 'cache', '0'), - ] - ); - - Util::addHeader( - 'link', - [ - 'href' => $stylesheet, - 'rel' => 'stylesheet' - ], - '' - ); - - Util::addHeader( - 'script', - [ - 'src' => $script, - 'nonce' => $cspnm->getNonce(), - ], - '' - ); +if ($app->isEnabled()) { + $app->registerAssets(); } diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php new file mode 100644 index 0000000..35671c1 --- /dev/null +++ b/lib/AppInfo/Application.php @@ -0,0 +1,114 @@ + + */ +class Application extends App +{ + /** + * @var OC\AllConfig + */ + protected $config; + + /** + * @var ContentSecurityPolicyNonceManager + */ + protected $cspnm; + + /** + * @var User + */ + protected $user; + + /** + * {@inheritdoc} + */ + public function __construct(array $urlParams = []) + { + parent::__construct('side_menu', $urlParams); + + $this->config = OC::$server->getConfig(); + $this->cspnm = OC::$server->getContentSecurityPolicyNonceManager(); + $this->user = OC::$server[IUserSession::class]->getUser(); + } + + /** + * Checks if this app is enabled. + */ + public function isEnabled(): bool + { + $enabled = true; + + if (null !== $this->user) { + $enabled = (bool) $this->config->getUserValue($this->user->getUid(), 'side_menu', 'enabled', '1'); + } + + return $enabled; + } + + /** + * Registes services. + */ + public function registerServices() + { + $container = $this->getContainer(); + + $container->registerService('AppRepository', function (ContainerInterface $c) { + return new AppRepository(new OC_App()); + }); + } + + /** + * Registers assets. + */ + public function registerAssets() + { + Util::addScript('side_menu', 'sideMenu'); + Util::addStyle('side_menu', 'sideMenu'); + + $stylesheet = OC::$server->getURLGenerator()->linkToRoute( + 'side_menu.Css.stylesheet', + [ + 'v' => $this->config->getAppValue('side_menu', 'cache', '0'), + ] + ); + + $script = OC::$server->getURLGenerator()->linkToRoute( + 'side_menu.Js.script', + [ + 'v' => $this->config->getAppValue('side_menu', 'cache', '0'), + ] + ); + + Util::addHeader( + 'link', + [ + 'href' => $stylesheet, + 'rel' => 'stylesheet', + ], + '' + ); + + Util::addHeader( + 'script', + [ + 'src' => $script, + 'nonce' => $this->cspnm->getNonce(), + ], + '' + ); + } +}