Quellcode durchsuchen

Fix behavior of theme switching when impersonating accounts

Kristan Kenney vor 5 Jahren
Ursprung
Commit
384a62b2f6
2 geänderte Dateien mit 4 neuen und 7 gelöschten Zeilen
  1. 4 2
      web/inc/main.php
  2. 0 5
      web/login/index.php

+ 4 - 2
web/inc/main.php

@@ -158,10 +158,12 @@ function top_panel($user, $TAB) {
     $panel = json_decode(implode('', $output), true);
     $panel = json_decode(implode('', $output), true);
     unset($output);
     unset($output);
 
 
-    if (isset($panel[$user]['THEME'])) {
+    // Load user's selected theme and do not change it when impersonting user
+    if ( (isset($panel[$user]['THEME'])) && (!isset($_SESSION['look']) )) {
         $_SESSION['userTheme'] = $panel[$user]['THEME'];
         $_SESSION['userTheme'] = $panel[$user]['THEME'];
     }
     }
-
+    
+    // Unset userTheme override variable if POLICY_USER_CHANGE_THEME is set to no
     if ($_SESSION['POLICY_USER_CHANGE_THEME'] === 'no') {
     if ($_SESSION['POLICY_USER_CHANGE_THEME'] === 'no') {
         unset($_SESSION['userTheme']);
         unset($_SESSION['userTheme']);
     }
     }

+ 0 - 5
web/login/index.php

@@ -32,7 +32,6 @@ if (isset($_SESSION['user'])) {
                 reset($data);
                 reset($data);
                 $_SESSION['look'] = key($data);
                 $_SESSION['look'] = key($data);
                 // Reset account details for File Manager to impersonated user
                 // Reset account details for File Manager to impersonated user
-                //unset($_SESSION['userTheme']);
                 unset($_SESSION['_sf2_attributes']);
                 unset($_SESSION['_sf2_attributes']);
                 unset($_SESSION['_sf2_meta']);
                 unset($_SESSION['_sf2_meta']);
                 header("Location: /login/");
                 header("Location: /login/");
@@ -186,10 +185,6 @@ function authenticate_user($user, $password, $twofa = ''){
                 $_SESSION['MURMUR'] = $_POST['murmur'];
                 $_SESSION['MURMUR'] = $_POST['murmur'];
 
 
                 $_SESSION['userContext'] = $data[$user]['ROLE'];
                 $_SESSION['userContext'] = $data[$user]['ROLE'];
-                $_SESSION['userTheme'] = $data[$user]['THEME'];
-                if ($_SESSION['POLICY_USER_CHANGE_THEME'] === 'no') {
-                    unset($_SESSION['userTheme']);
-                }
 
 
                 // Define language
                 // Define language
                 $output = '';
                 $output = '';