Limit the selectable options for php and chroot per client.
| | |
| | | `default_webserver` int(11) NOT NULL default '1', |
| | | `limit_web_ip` text, |
| | | `limit_web_domain` int(11) NOT NULL default '-1', |
| | | `web_php_options` varchar(255) NOT NULL default 'no,fast-cgi,cgi,mod,suphp', |
| | | `limit_web_subdomain` int(11) NOT NULL default '-1', |
| | | `limit_web_aliasdomain` int(11) NOT NULL default '-1', |
| | | `limit_ftp_user` int(11) NOT NULL default '-1', |
| | | `limit_shell_user` int(11) NOT NULL default '0', |
| | | `ssh_chroot` varchar(255) NOT NULL DEFAULT 'no,jailkit,ssh-chroot', |
| | | `default_dnsserver` int(10) unsigned NOT NULL default '1', |
| | | `limit_dns_zone` int(11) NOT NULL default '-1', |
| | | `limit_dns_record` int(11) NOT NULL default '-1', |
| | |
| | | |
| | | } |
| | | |
| | | //* If the parameter 'valuelimit' is set |
| | | function applyValueLimit($limit,$values) { |
| | | |
| | | global $app; |
| | | |
| | | $limit_parts = explode(':',$limit); |
| | | |
| | | //* values are limited to a comma separated list |
| | | if($limit_parts[0] == 'list') { |
| | | $allowed = explode(',',$limit_parts[1]); |
| | | } |
| | | |
| | | //* values are limited to a field in the client settings |
| | | if($limit_parts[0] == 'client') { |
| | | if($_SESSION["s"]["user"]["typ"] == 'admin') { |
| | | return $values; |
| | | } else { |
| | | $client_group_id = $_SESSION["s"]["user"]["default_group"]; |
| | | $client = $app->db->queryOneRecord("SELECT ".$limit_parts[1]." as lm FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id"); |
| | | $allowed = explode(',',$client['lm']); |
| | | } |
| | | } |
| | | |
| | | //* values are limited to a field in the system settings |
| | | if($limit_parts[0] == 'system') { |
| | | $app->uses('getconf'); |
| | | $tmp_conf = $app->getconf->get_global_config($limit_parts[1]); |
| | | $tmp_key = $limit_parts[2]; |
| | | $allowed = $tmp_conf[$tmp_key]; |
| | | } |
| | | |
| | | $values_new = array(); |
| | | foreach($values as $key => $val) { |
| | | if(in_array($key,$allowed)) $values_new[$key] = $val; |
| | | } |
| | | |
| | | return $values_new; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Prepare the data record to show the data in a form. |
| | |
| | | // If Datasource is set, get the data from there |
| | | if(isset($field['datasource']) && is_array($field['datasource'])) { |
| | | $field["value"] = $this->getDatasourceData($field, $record); |
| | | } |
| | | |
| | | // If a limitation for the values is set |
| | | if(isset($field['valuelimit']) && is_array($field["value"])) { |
| | | $field["value"] = $this->applyValueLimit($field['valuelimit'],$field["value"]); |
| | | } |
| | | |
| | | switch ($field['formtype']) { |
| | |
| | | $out .= "<span class=\"wf_oneChoice\">\r\n |
| | | <input type=\"checkbox\" value=\"$k\" id=\"".$key."[]\" name=\"".$key."[]\" $checked>\r\n |
| | | <label for=\"".$key."[]\" id=\"".$key."[]-L\" class=\"wf_postField\">$v</label>\r\n |
| | | </span><br />\r\n"; |
| | | </span>\r\n"; |
| | | } |
| | | } |
| | | $new_record[$key] = $out; |
| | |
| | | // If Datasource is set, get the data from there |
| | | if(@is_array($field['datasource'])) { |
| | | $field["value"] = $this->getDatasourceData($field, $record); |
| | | } |
| | | |
| | | // If a limitation for the values is set |
| | | if(isset($field['valuelimit']) && is_array($field["value"])) { |
| | | $field["value"] = $this->applyValueLimit($field['valuelimit'],$field["value"]); |
| | | } |
| | | |
| | | switch ($field['formtype']) { |
| | |
| | | $out .= "<span class=\"wf_oneChoice\">\r\n |
| | | <input type=\"checkbox\" value=\"$k\" id=\"".$key."[]\" name=\"".$key."[]\" $checked>\r\n |
| | | <label for=\"".$key."[]\" id=\"".$key."[]-L\" class=\"wf_postField\">$v</label>\r\n |
| | | </span><br />\r\n"; |
| | | </span>\r\n"; |
| | | } |
| | | } |
| | | $new_record[$key] = $out; |
| | |
| | | 'rows' => '', |
| | | 'cols' => '' |
| | | ), |
| | | 'web_php_options' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'CHECKBOXARRAY', |
| | | 'default' => '', |
| | | 'separator' => ',', |
| | | 'value' => array('no' => 'Disabled', 'fast-cgi' => 'Fast-CGI', 'cgi' => 'CGI', 'mod' => 'Mod-PHP', 'suphp' => 'SuPHP') |
| | | ), |
| | | 'limit_web_aliasdomain' => array ( |
| | | 'datatype' => 'INTEGER', |
| | | 'formtype' => 'TEXT', |
| | |
| | | 'rows' => '', |
| | | 'cols' => '' |
| | | ), |
| | | 'ssh_chroot' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'CHECKBOXARRAY', |
| | | 'default' => '', |
| | | 'separator' => ',', |
| | | 'value' => array('no' => 'None', 'jailkit' => 'Jailkit', 'ssh-chroot' => 'SSH Chroot') |
| | | ), |
| | | 'default_dnsserver' => array ( |
| | | 'datatype' => 'INTEGER', |
| | | 'formtype' => 'SELECT', |
| | |
| | | $wb["username_error_regex"] = 'The Username contains invalid chracaters.'; |
| | | $wb["template_master_txt"] = 'Master'; |
| | | $wb["template_additional_txt"] = 'Addon'; |
| | | $wb["ssh_chroot_txt"] = 'SSH-Chroot Options'; |
| | | $wb["web_php_options_txt"] = 'PHP Options'; |
| | | ?> |
| | |
| | | <input type="text" id="limit_web_domain" name="limit_web_domain" value="{tmpl_var name='limit_web_domain'}" size="10" maxlength="10"> |
| | | </span> |
| | | <span class="wf_oneField"> |
| | | <label for="web_php_options" class="wf_preField">{tmpl_var name='web_php_options_txt'}</label> |
| | | {tmpl_var name='web_php_options'} |
| | | </span> |
| | | <span class="wf_oneField"> |
| | | <label for="limit_web_aliasdomain" class="wf_preField">{tmpl_var name='limit_web_aliasdomain_txt'}</label> |
| | | <input type="text" id="limit_web_aliasdomain" name="limit_web_aliasdomain" value="{tmpl_var name='limit_web_aliasdomain'}" size="10" maxlength="10"> |
| | | </span> |
| | |
| | | <input type="text" id="limit_shell_user" name="limit_shell_user" value="{tmpl_var name='limit_shell_user'}" size="10" maxlength="10"> |
| | | </span> |
| | | <span class="wf_oneField"> |
| | | <label for="ssh_chroot" class="wf_preField">{tmpl_var name='ssh_chroot_txt'}</label> |
| | | {tmpl_var name='ssh_chroot'} |
| | | </span> |
| | | <span class="wf_oneField"> |
| | | <label for="default_dnsserver" class="wf_preField">{tmpl_var name='default_dnsserver_txt'}</label> |
| | | <select id="default_dnsserver" name="default_dnsserver">{tmpl_var name='default_dnsserver'}</select> |
| | | </span> |
| | |
| | | */ |
| | | $update = ''; |
| | | foreach($limits as $k => $v){ |
| | | if (strpos($k, 'limit') !== false){ |
| | | if (strpos($k, 'limit') !== false && !is_array($v)){ |
| | | if ($update != '') $update .= ', '; |
| | | $update .= '`' . $k . "`='" . $v . "'"; |
| | | } |
| | |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'SELECT', |
| | | 'default' => '', |
| | | 'value' => array('' => 'None', 'jailkit' => 'Jailkit', 'ssh-chroot' => 'SSH Chroot') |
| | | 'valuelimit' => 'client:ssh_chroot', |
| | | 'value' => array('no' => 'None', 'jailkit' => 'Jailkit', 'ssh-chroot' => 'SSH Chroot') |
| | | ), |
| | | 'quota_size' => array ( |
| | | 'datatype' => 'INTEGER', |
| | |
| | | 'datatype' => 'VARCHAR',
|
| | | 'formtype' => 'SELECT',
|
| | | 'default' => 'fast-cgi',
|
| | | 'value' => array('' => 'Disabled', 'fast-cgi' => 'Fast-CGI', 'cgi' => 'CGI', 'mod' => 'Mod-PHP', 'suphp' => 'SuPHP')
|
| | | 'valuelimit' => 'client:web_php_options', |
| | | 'value' => array('no' => 'Disabled', 'fast-cgi' => 'Fast-CGI', 'cgi' => 'CGI', 'mod' => 'Mod-PHP', 'suphp' => 'SuPHP') |
| | | ),
|
| | | 'active' => array (
|
| | | 'datatype' => 'VARCHAR',
|