From 67c4b392445e899cc25a0ff44ae9a66a61dcd956 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Mon, 20 Jul 2009 08:17:24 -0400
Subject: [PATCH] Fixed a problem with apache user and group field in the admin settings.
---
install/lib/installer_base.lib.php | 4 ++--
interface/web/admin/templates/server_config_web_edit.htm | 4 ++--
interface/lib/classes/tform.inc.php | 27 +++++++++++++++++++++++++++
interface/web/client/form/client.tform.php | 2 ++
interface/web/admin/lib/lang/en_server_config.lng | 3 ++-
5 files changed, 35 insertions(+), 5 deletions(-)
diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index 3ea0894..f5ae5fd 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -212,8 +212,8 @@
$tpl_ini_array['web']['website_symlinks'] = $conf['web']['website_symlinks'];
$tpl_ini_array['cron']['crontab_dir'] = $conf['cron']['crontab_dir'];
$tpl_ini_array['web']['security_level'] = 20;
- $tpl_ini_array['web']['user'] = $conf['web']['user'];
- $tpl_ini_array['web']['group'] = $conf['web']['group'];
+ $tpl_ini_array['web']['user'] = $conf['apache']['user'];
+ $tpl_ini_array['web']['group'] = $conf['apache']['group'];
$server_ini_content = array_to_ini($tpl_ini_array);
$server_ini_content = mysql_real_escape_string($server_ini_content);
diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php
index ec37de2..b7b378d 100644
--- a/interface/lib/classes/tform.inc.php
+++ b/interface/lib/classes/tform.inc.php
@@ -276,6 +276,33 @@
}
}
+ //* values are limited to a field in the reseller settings
+ if($limit_parts[0] == 'reseller') {
+ if($_SESSION["s"]["user"]["typ"] == 'admin') {
+ return $values;
+ } else {
+ //* Get the limits of the client that is currently logged in
+ $client_group_id = $_SESSION["s"]["user"]["default_group"];
+ $client = $app->db->queryOneRecord("SELECT parent_client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id");
+ //echo "SELECT parent_client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id";
+ //* If the client belongs to a reseller, we will check against the reseller Limit too
+ if($client['parent_client_id'] != 0) {
+
+ //* first we need to know the groups of this reseller
+ $tmp = $app->db->queryOneRecord("SELECT userid, groups FROM sys_user WHERE client_id = ".$client['parent_client_id']);
+ $reseller_groups = $tmp["groups"];
+ $reseller_userid = $tmp["userid"];
+
+ // Get the limits of the reseller of the logged in client
+ $client_group_id = $_SESSION["s"]["user"]["default_group"];
+ $reseller = $app->db->queryOneRecord("SELECT ".$limit_parts[1]." as lm FROM client WHERE client_id = ".$client['parent_client_id']);
+ $allowed = explode(',',$reseller['lm']);
+ } else {
+ return $values;
+ }
+ } // end if admin
+ } // end if reseller
+
//* values are limited to a field in the system settings
if($limit_parts[0] == 'system') {
$app->uses('getconf');
diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng
index 6e817f4..47b2d70 100644
--- a/interface/web/admin/lib/lang/en_server_config.lng
+++ b/interface/web/admin/lib/lang/en_server_config.lng
@@ -43,5 +43,6 @@
$wb["init_script_txt"] = 'Cron init script name';
$wb["crontab_dir_txt"] = 'Path for individual crontabs';
$wb["wget_txt"] = 'Path to wget program';
-$wb["security_level_txt"] = 'Security level';
+$wb["web_user_txt"] = 'Apache user';
+$wb["web_group_txt"] = 'Apache group';
?>
\ No newline at end of file
diff --git a/interface/web/admin/templates/server_config_web_edit.htm b/interface/web/admin/templates/server_config_web_edit.htm
index e5a317f..646c076 100644
--- a/interface/web/admin/templates/server_config_web_edit.htm
+++ b/interface/web/admin/templates/server_config_web_edit.htm
@@ -34,11 +34,11 @@
</div>
</div>
<div class="ctrlHolder">
- <label for="user">{tmpl_var name='user_txt'}</label>
+ <label for="user">{tmpl_var name='web_user_txt'}</label>
<input name="user" id="user" value="{tmpl_var name='user'}" size="40" maxlength="255" type="text" class="textInput" />
</div>
<div class="ctrlHolder">
- <label for="group">{tmpl_var name='group_txt'}</label>
+ <label for="group">{tmpl_var name='web_group_txt'}</label>
<input name="group" id="group" value="{tmpl_var name='group'}" size="40" maxlength="255" type="text" class="textInput" />
</div>
</fieldset>
diff --git a/interface/web/client/form/client.tform.php b/interface/web/client/form/client.tform.php
index 323a5f4..4d369ce 100644
--- a/interface/web/client/form/client.tform.php
+++ b/interface/web/client/form/client.tform.php
@@ -520,6 +520,7 @@
'formtype' => 'CHECKBOXARRAY',
'default' => '',
'separator' => ',',
+ 'valuelimit' => 'client:web_php_options',
'value' => array('no' => 'Disabled', 'fast-cgi' => 'Fast-CGI', 'cgi' => 'CGI', 'mod' => 'Mod-PHP', 'suphp' => 'SuPHP')
),
'limit_web_aliasdomain' => array (
@@ -583,6 +584,7 @@
'formtype' => 'CHECKBOXARRAY',
'default' => '',
'separator' => ',',
+ 'valuelimit' => 'client:ssh_chroot',
'value' => array('no' => 'None', 'jailkit' => 'Jailkit')
),
'default_dnsserver' => array (
--
Gitblit v1.9.1