Kristan Kenney 5 лет назад
Родитель
Сommit
800da8772b

+ 1 - 1
bin/v-change-sys-config-value

@@ -45,7 +45,7 @@ check_ckey=$(grep "^$key='" $HESTIA/conf/hestia.conf)
 if [ -z "$check_ckey" ]; then
     echo "$key='$value'" >> $HESTIA/conf/hestia.conf
 else
-    sed -i "s|$key=.*|$key='$value'|g" $HESTIA/conf/hestia.conf
+    sed -i "s|^$key=.*|$key='$value'|g" $HESTIA/conf/hestia.conf
 fi
 
 # Sort configuration file in alphabetical order on change

+ 2 - 1
bin/v-list-sys-config

@@ -79,7 +79,8 @@ json_list() {
         "POLICY_SYSTEM_HIDE_ADMIN": "'$POLICY_SYSTEM_HIDE_ADMIN'",
         "POLICY_USER_EDIT_DETAILS": "'$POLICY_USER_EDIT_DETAILS'",
         "POLICY_USER_DELETE_LOGS": "'$POLICY_USER_DELETE_LOGS'",
-        "POLICY_USER_VIEW_LOGS": "'$POLICY_USER_VIEW_LOGS'"
+        "POLICY_USER_VIEW_LOGS": "'$POLICY_USER_VIEW_LOGS'",
+        "POLICY_USER_CHANGE_THEME": "'$POLICY_USER_CHANGE_THEME'"
     }
     }'
 }

+ 11 - 0
web/edit/server/index.php

@@ -739,6 +739,17 @@ if (!empty($_POST['save'])) {
         }
     }
 
+    // Change POLICY_USER_CHANGE_THEME
+    if (empty($_SESSION['error_msg'])) {
+        if ($_POST['v_policy_user_change_theme'] != $_SESSION['POLICY_USER_CHANGE_THEME']) {
+            exec (HESTIA_CMD."v-change-sys-config-value POLICY_USER_CHANGE_THEME ".escapeshellarg($_POST['v_policy_user_change_theme']), $output, $return_var);
+            check_return_code($return_var,$output);
+            unset($output);
+            if (empty($_SESSION['error_msg'])) $v_enforce_subdomain_ownership = $_POST['v_policy_user_change_theme'];
+            $v_security_adv = 'yes';
+        }
+    }
+
     // Change POLICY_SYSTEM_HIDE_ADMIN
     if (empty($_SESSION['error_msg'])) {
         if ($_POST['v_policy_system_hide_admin'] != $_SESSION['POLICY_SYSTEM_HIDE_ADMIN']) {

+ 4 - 0
web/inc/main.php

@@ -161,6 +161,10 @@ function top_panel($user, $TAB) {
     if (isset($panel[$user]['THEME'])) {
         $_SESSION['userTheme'] = $panel[$user]['THEME'];
     }
+
+    if ($_SESSION['POLICY_USER_CHANGE_THEME'] === 'no') {
+        unset($_SESSION['userTheme']);
+    }
     
     // Set home location URLs
     if (($_SESSION['userContext'] === 'admin') && (!isset($_SESSION['look']))) {

+ 4 - 1
web/login/index.php

@@ -174,7 +174,10 @@ function authenticate_user($user, $password, $twofa = ''){
                 
                 $_SESSION['userContext'] = $data[$user]['ROLE'];
                 $_SESSION['userTheme'] = $data[$user]['THEME'];
-
+                if ($_SESSION['POLICY_USER_CHANGE_THEME'] === 'no') {
+                    unset($_SESSION['userTheme']);
+                }
+                
                 // Define session user
                 $_SESSION['user'] = key($data);
                 $v_user = $_SESSION['user'];

+ 14 - 0
web/templates/admin/edit_server.html

@@ -1098,6 +1098,20 @@
                                                 <br><br>
                                             </td>
                                         </tr>
+                                        <tr>
+                                            <td class="vst-text input-label">
+                                                <?php print _('Allow users to change user interface theme');?>
+                                            </td>
+                                        </tr>
+                                        <tr>
+                                            <td>
+                                                <select class="vst-list" name="v_policy_user_change_theme">
+                                                    <option value='yes' <?php if($_SESSION['POLICY_USER_CHANGE_THEME'] !== 'no') echo 'selected' ?>><?php print _('yes'); ?></option>
+                                                    <option value='no' <?php if($_SESSION['POLICY_USER_CHANGE_THEME'] == 'no') echo 'selected' ?>><?php print _('no'); ?></option>
+                                                </select>
+                                                <br><br>
+                                            </td>
+                                        </tr>
                                         <tr>
                                             <td class="vst-text input-label">
                                                 <?php print _('Inactive session timeout');?> (<?php print _('Minutes');?>)

+ 2 - 0
web/templates/admin/edit_user.html

@@ -178,6 +178,7 @@
                                 </tr>
                                 <? } ?>
                             <? } ?>
+                            <? if ($_SESSION['POLICY_USER_CHANGE_THEME'] !== 'no') {?>
                             <tr>
                                 <td class="vst-text input-label">
                                     <?php print _('Theme') ?>
@@ -201,6 +202,7 @@
                                     </select>
                                 </td>
                             </tr>
+                            <?}?>
                             <tr>
                                 <td class="vst-text input-label">
                                     <?php print _('Package');?>

+ 2 - 0
web/templates/user/edit_user.html

@@ -143,6 +143,7 @@
                                     </select>
                                 </td>
                             </tr>
+                            <? if ($_SESSION['POLICY_USER_CHANGE_THEME'] !== 'no') {?>
                             <tr>
                                 <td class="vst-text input-label">
                                     <?php print _('Theme') ?>
@@ -166,6 +167,7 @@
                                     </select>
                                 </td>
                             </tr>
+                            <?}?>
                             <tr>
                                 <td class="vst-text input-label">
                                     <?php print _('Default Name Servers');?>