]> source.dussan.org Git - nextcloud-server.git/commitdiff
Respect "prefers-color-scheme" media selector for guests 21366/head
authorJoas Schilling <coding@schilljs.com>
Wed, 10 Jun 2020 21:47:01 +0000 (23:47 +0200)
committerJoas Schilling <coding@schilljs.com>
Wed, 10 Jun 2020 21:47:01 +0000 (23:47 +0200)
Signed-off-by: Joas Schilling <coding@schilljs.com>
apps/accessibility/lib/AppInfo/Application.php
apps/accessibility/lib/Controller/AccessibilityController.php

index 0cac878d34e6ff803a4c93e86f6d4b4529bda2e7..02dfeb8c16bec6f3a02e50ef6c01cc2117749d4e 100644 (file)
@@ -63,6 +63,12 @@ class Application extends App {
                                $linkToCSS = $this->urlGenerator->linkToRoute(self::APP_NAME . '.accessibility.getCss', ['md5' => $hash]);
                                \OCP\Util::addHeader('link', ['rel' => 'stylesheet', 'href' => $linkToCSS]);
                        }
+               } else {
+                       $userValues = ['dark'];
+
+                       $hash = md5(implode('-', $userValues));
+                       $linkToCSS = $this->urlGenerator->linkToRoute(self::APP_NAME . '.accessibility.getCss', ['md5' => $hash]);
+                       \OCP\Util::addHeader('link', ['rel' => 'stylesheet', 'media' => '(prefers-color-scheme: dark)', 'href' => $linkToCSS]);
                }
        }
 
index 25e117c71555c4e2129a40cfbb40da6818df7396..4f96922324a14f65e4cd9dda238a0c61ed93a5df 100644 (file)
@@ -131,7 +131,7 @@ class AccessibilityController extends Controller {
        }
 
        /**
-        * @NoAdminRequired
+        * @PublicPage
         * @NoCSRFRequired
         * @NoSameSiteCookieRequired
         *
@@ -140,7 +140,11 @@ class AccessibilityController extends Controller {
        public function getCss(): DataDisplayResponse {
                $css        = '';
                $imports    = '';
-               $userValues = $this->getUserValues();
+               if ($this->userSession->isLoggedIn()) {
+                       $userValues = $this->getUserValues();
+               } else {
+                       $userValues = ['dark'];
+               }
 
                foreach ($userValues as $key => $scssFile) {
                        if ($scssFile !== false) {
@@ -199,7 +203,9 @@ class AccessibilityController extends Controller {
                $response->addHeader('Pragma', 'cache');
 
                // store current cache hash
-               $this->config->setUserValue($this->userSession->getUser()->getUID(), $this->appName, 'icons-css', md5($css));
+               if ($this->userSession->isLoggedIn()) {
+                       $this->config->setUserValue($this->userSession->getUser()->getUID(), $this->appName, 'icons-css', md5($css));
+               }
 
                return $response;
        }