diff options
author | Christoph Wurst <christoph@winzerhof-wurst.at> | 2020-06-08 18:24:19 +0200 |
---|---|---|
committer | Christoph Wurst <christoph@winzerhof-wurst.at> | 2020-06-17 09:22:21 +0200 |
commit | 0587010dff504eca9320e9039cd76386cc2a208f (patch) | |
tree | 34a83929136061101e7fbfebebca55b8c9dacaed /apps/accessibility/lib | |
parent | 0a24d1f8df52a1f719e45538de72f034b1f9ff83 (diff) | |
download | nextcloud-server-0587010dff504eca9320e9039cd76386cc2a208f.tar.gz nextcloud-server-0587010dff504eca9320e9039cd76386cc2a208f.zip |
Migrate Accessibility app to new bootstrap mechanism
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Diffstat (limited to 'apps/accessibility/lib')
-rw-r--r-- | apps/accessibility/lib/AppInfo/Application.php | 61 | ||||
-rw-r--r-- | apps/accessibility/lib/Migration/RepairUserConfig.php | 8 |
2 files changed, 48 insertions, 21 deletions
diff --git a/apps/accessibility/lib/AppInfo/Application.php b/apps/accessibility/lib/AppInfo/Application.php index 0cac878d34e..e691b8353d9 100644 --- a/apps/accessibility/lib/AppInfo/Application.php +++ b/apps/accessibility/lib/AppInfo/Application.php @@ -1,4 +1,7 @@ <?php + +declare(strict_types=1); + /** * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com> * @@ -27,14 +30,21 @@ namespace OCA\Accessibility\AppInfo; use OCP\AppFramework\App; +use OCP\AppFramework\Bootstrap\IBootContext; +use OCP\AppFramework\Bootstrap\IBootstrap; +use OCP\AppFramework\Bootstrap\IRegistrationContext; use OCP\IConfig; +use OCP\IServerContainer; use OCP\IURLGenerator; use OCP\IUserSession; +use function count; +use function implode; +use function md5; -class Application extends App { +class Application extends App implements IBootstrap { /** @var string */ - public const APP_NAME = 'accessibility'; + public const APP_ID = 'accessibility'; /** @var IConfig */ private $config; @@ -46,31 +56,48 @@ class Application extends App { private $urlGenerator; public function __construct() { - parent::__construct(self::APP_NAME); - $this->config = \OC::$server->getConfig(); - $this->userSession = \OC::$server->getUserSession(); - $this->urlGenerator = \OC::$server->getURLGenerator(); + parent::__construct(self::APP_ID); + } + + public function register(IRegistrationContext $context): void { + } + + public function boot(IBootContext $context): void { + $this->injectCss( + $context->getAppContainer()->query(IUserSession::class), + $context->getAppContainer()->query(IConfig::class), + $context->getAppContainer()->query(IURLGenerator::class) + ); + $this->injectJavascript( + $context->getAppContainer()->query(IURLGenerator::class), + $context->getAppContainer()->query(IConfig::class), + $context->getServerContainer() + ); } - public function injectCss() { + private function injectCss(IUserSession $userSession, + IConfig $config, + IURLGenerator $urlGenerator) { // Inject the fake css on all pages if enabled and user is logged - $loggedUser = $this->userSession->getUser(); - if (!is_null($loggedUser)) { - $userValues = $this->config->getUserKeys($loggedUser->getUID(), self::APP_NAME); + $loggedUser = $userSession->getUser(); + if ($loggedUser !== null) { + $userValues = $config->getUserKeys($loggedUser->getUID(), self::APP_ID); // we want to check if any theme or font is enabled. if (count($userValues) > 0) { - $hash = $this->config->getUserValue($loggedUser->getUID(), self::APP_NAME, 'icons-css', md5(implode('-', $userValues))); - $linkToCSS = $this->urlGenerator->linkToRoute(self::APP_NAME . '.accessibility.getCss', ['md5' => $hash]); + $hash = $config->getUserValue($loggedUser->getUID(), self::APP_ID, 'icons-css', md5(implode('-', $userValues))); + $linkToCSS = $urlGenerator->linkToRoute(self::APP_ID . '.accessibility.getCss', ['md5' => $hash]); \OCP\Util::addHeader('link', ['rel' => 'stylesheet', 'href' => $linkToCSS]); } } } - public function injectJavascript() { - $linkToJs = $this->urlGenerator->linkToRoute( - self::APP_NAME . '.accessibility.getJavascript', + private function injectJavascript(IURLGenerator $urlGenerator, + IConfig $config, + IServerContainer $serverContainer) { + $linkToJs = $urlGenerator->linkToRoute( + self::APP_ID . '.accessibility.getJavascript', [ - 'v' => \OC::$server->getConfig()->getAppValue('accessibility', 'cachebuster', '0'), + 'v' => $config->getAppValue(self::APP_ID, 'cachebuster', '0'), ] ); @@ -78,7 +105,7 @@ class Application extends App { 'script', [ 'src' => $linkToJs, - 'nonce' => \OC::$server->getContentSecurityPolicyNonceManager()->getNonce() + 'nonce' => $serverContainer->getContentSecurityPolicyNonceManager()->getNonce() ], '' ); diff --git a/apps/accessibility/lib/Migration/RepairUserConfig.php b/apps/accessibility/lib/Migration/RepairUserConfig.php index 4b946f6a785..2b4bbc1ed19 100644 --- a/apps/accessibility/lib/Migration/RepairUserConfig.php +++ b/apps/accessibility/lib/Migration/RepairUserConfig.php @@ -75,13 +75,13 @@ class RepairUserConfig implements IRepairStep { public function run(IOutput $output) { $output->startProgress(); $this->userManager->callForSeenUsers(function (IUser $user) use ($output) { - $theme = $this->config->getUserValue($user->getUID(), Application::APP_NAME, 'theme', false); + $theme = $this->config->getUserValue($user->getUID(), Application::APP_ID, 'theme', false); if ($theme === 'themedark') { - $this->config->setUserValue($user->getUID(), Application::APP_NAME, 'theme', 'dark'); + $this->config->setUserValue($user->getUID(), Application::APP_ID, 'theme', 'dark'); } if ($theme === 'themehighcontrast') { - $this->config->setUserValue($user->getUID(), Application::APP_NAME, 'highcontrast', 'highcontrast'); - $this->config->deleteUserValue($user->getUID(), Application::APP_NAME, 'theme'); + $this->config->setUserValue($user->getUID(), Application::APP_ID, 'highcontrast', 'highcontrast'); + $this->config->deleteUserValue($user->getUID(), Application::APP_ID, 'theme'); } $output->advance(); }); |