Ver Fonte

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

El RIDO há 8 meses atrás
pai
commit
d1124382bc
1 ficheiros alterados com 5 adições e 1 exclusões
  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