소스 검색

belt and braces: reset the template cookie, if function is not enabled

El RIDO 8 달 전
부모
커밋
d1124382bc
1개의 변경된 파일5개의 추가작업 그리고 1개의 파일을 삭제
  1. 5 1
      lib/Controller.php

+ 5 - 1
lib/Controller.php

@@ -431,11 +431,15 @@ class Controller
             setcookie('lang', $languageselection, array('SameSite' => 'Lax', 'Secure' => true));
         }
 
-        // set template cookie if that functionality was enabled
+        // set template cookie if that functionality was enabled, otherwise delete any existing cookie
         $templateselection = '';
         if ($this->_conf->getKey('templateselection')) {
             $templateselection = TemplateSwitcher::getTemplate();
             setcookie('template', $templateselection, array('SameSite' => 'Lax', 'Secure' => true));
+        } elseif (array_key_exists('template', $_COOKIE)) {
+            unset($_COOKIE['template']); // ensure value is not re-used in template switcher
+            $expiredInAllTimezones = time() - 86400;
+            setcookie('template', '', array('expires' => $expiredInAllTimezones, 'SameSite' => 'Lax', 'Secure' => true));
         }
 
         // strip policies that are unsupported in meta tag