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', |
| | |
| | | `password` varchar(255) default NULL, |
| | | `language` varchar(255) NOT NULL default 'en', |
| | | `usertheme` varchar(255) NOT NULL default 'default', |
| | | `template_master` bigint(20) NOT NULL default '0',
|
| | | `template_master` bigint(20) NOT NULL default '0', |
| | | `template_additional` varchar(255) NOT NULL default '', |
| | | PRIMARY KEY (`client_id`) |
| | | ) ENGINE=MyISAM AUTO_INCREMENT=1 ; |
| | | |
| | | -- -------------------------------------------------------- |
| | | |
| | | -- |
| | | -- Table structure for table `client_template`
|
| | | -- |
| | |
|
| | | CREATE TABLE `client_template` (
|
| | | `template_id` bigint(20) NOT NULL auto_increment,
|
| | | `template_name` varchar(50) NOT NULL,
|
| | | `template_type` varchar(1) NOT NULL default 'm',
|
| | | `limit_maildomain` int(11) NOT NULL default '-1',
|
| | | `limit_mailbox` int(11) NOT NULL default '-1',
|
| | | `limit_mailalias` int(11) NOT NULL default '-1',
|
| | | `limit_mailforward` int(11) NOT NULL default '-1',
|
| | | `limit_mailcatchall` int(11) NOT NULL default '-1',
|
| | | `limit_mailrouting` int(11) NOT NULL default '0',
|
| | | `limit_mailfilter` int(11) NOT NULL default '-1',
|
| | | `limit_fetchmail` int(11) NOT NULL default '-1',
|
| | | `limit_mailquota` int(11) NOT NULL default '-1',
|
| | | `limit_spamfilter_wblist` int(11) NOT NULL default '0',
|
| | | `limit_spamfilter_user` int(11) NOT NULL default '0',
|
| | | `limit_spamfilter_policy` int(11) NOT NULL default '0',
|
| | | `limit_web_ip` text,
|
| | | `limit_web_domain` int(11) NOT NULL default '-1',
|
| | | `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',
|
| | | `limit_dns_zone` int(11) NOT NULL default '-1',
|
| | | `limit_dns_record` int(11) NOT NULL default '-1',
|
| | | `limit_database` int(11) NOT NULL default '-1',
|
| | | -- |
| | | -- Table structure for table `client_template` |
| | | -- |
| | | |
| | | CREATE TABLE `client_template` ( |
| | | `template_id` bigint(20) NOT NULL auto_increment, |
| | | `template_name` varchar(50) NOT NULL, |
| | | `template_type` varchar(1) NOT NULL default 'm', |
| | | `limit_maildomain` int(11) NOT NULL default '-1', |
| | | `limit_mailbox` int(11) NOT NULL default '-1', |
| | | `limit_mailalias` int(11) NOT NULL default '-1', |
| | | `limit_mailforward` int(11) NOT NULL default '-1', |
| | | `limit_mailcatchall` int(11) NOT NULL default '-1', |
| | | `limit_mailrouting` int(11) NOT NULL default '0', |
| | | `limit_mailfilter` int(11) NOT NULL default '-1', |
| | | `limit_fetchmail` int(11) NOT NULL default '-1', |
| | | `limit_mailquota` int(11) NOT NULL default '-1', |
| | | `limit_spamfilter_wblist` int(11) NOT NULL default '0', |
| | | `limit_spamfilter_user` int(11) NOT NULL default '0', |
| | | `limit_spamfilter_policy` int(11) NOT NULL default '0', |
| | | `limit_web_ip` text, |
| | | `limit_web_domain` int(11) NOT NULL default '-1', |
| | | `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', |
| | | `limit_dns_zone` int(11) NOT NULL default '-1', |
| | | `limit_dns_record` int(11) NOT NULL default '-1', |
| | | `limit_database` int(11) NOT NULL default '-1', |
| | | `limit_client` int(11) NOT NULL default '0', |
| | | `sys_userid` int(11) NOT NULL default '0',
|
| | | `sys_groupid` int(11) NOT NULL default '0',
|
| | | `sys_perm_user` varchar(5) default NULL,
|
| | | `sys_perm_group` varchar(5) default NULL,
|
| | | `sys_perm_other` varchar(5) default NULL, |
| | | PRIMARY KEY (`template_id`)
|
| | | `sys_userid` int(11) NOT NULL default '0', |
| | | `sys_groupid` int(11) NOT NULL default '0', |
| | | `sys_perm_user` varchar(5) default NULL, |
| | | `sys_perm_group` varchar(5) default NULL, |
| | | `sys_perm_other` varchar(5) default NULL, |
| | | PRIMARY KEY (`template_id`) |
| | | ) ENGINE=MyISAM AUTO_INCREMENT=1 ; |
| | | |
| | | -- -------------------------------------------------------- |
| | |
| | | return $values; |
| | | |
| | | } |
| | | |
| | | //* 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; |
| | | } |
| | | |
| | | |
| | | /** |
| | |
| | | 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']) { |
| | | case 'SELECT': |
| | |
| | | $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); |
| | | $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']) { |
| | | case 'SELECT': |
| | |
| | | $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; |
| | |
| | | switch ($field['datatype']) { |
| | | case 'VARCHAR': |
| | | if(!@is_array($record[$key])) { |
| | | $new_record[$key] = (isset($record[$key]))?$app->db->quote($record[$key]):''; |
| | | $new_record[$key] = (isset($record[$key]))?$app->db->quote($record[$key]):''; |
| | | } else { |
| | | $new_record[$key] = implode($field['separator'],$record[$key]); |
| | | } |
| | |
| | | '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'; |
| | | ?> |
| | |
| | | <label for="limit_web_domain" class="wf_preField">{tmpl_var name='limit_web_domain_txt'}</label> |
| | | <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"> |
| | |
| | | <label for="limit_shell_user" class="wf_preField">{tmpl_var name='limit_shell_user_txt'}</label> |
| | | <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> |
| | |
| | | */ |
| | | $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', |
| | |
| | | <?php
|
| | |
|
| | | /*
|
| | | Form Definition
|
| | |
|
| | | Tabledefinition
|
| | |
|
| | | Datatypes:
|
| | | - INTEGER (Forces the input to Int)
|
| | | - DOUBLE
|
| | | - CURRENCY (Formats the values to currency notation)
|
| | | - VARCHAR (no format check, maxlength: 255)
|
| | | - TEXT (no format check)
|
| | | - DATE (Dateformat, automatic conversion to timestamps)
|
| | |
|
| | | Formtype:
|
| | | - TEXT (Textfield)
|
| | | - TEXTAREA (Textarea)
|
| | | - PASSWORD (Password textfield, input is not shown when edited)
|
| | | - SELECT (Select option field)
|
| | | - RADIO
|
| | | - CHECKBOX
|
| | | - CHECKBOXARRAY
|
| | | - FILE
|
| | |
|
| | | VALUE:
|
| | | - Wert oder Array
|
| | |
|
| | | Hint:
|
| | | The ID field of the database table is not part of the datafield definition.
|
| | | The ID field must be always auto incement (int or bigint).
|
| | |
|
| | |
|
| | | */
|
| | |
|
| | | $form["title"] = "Web Domain";
|
| | | $form["description"] = "";
|
| | | $form["name"] = "web_domain";
|
| | | $form["action"] = "web_domain_edit.php";
|
| | | $form["db_table"] = "web_domain";
|
| | | $form["db_table_idx"] = "domain_id";
|
| | | $form["db_history"] = "yes";
|
| | | $form["tab_default"] = "domain";
|
| | | $form["list_default"] = "web_domain_list.php";
|
| | | $form["auth"] = 'yes'; // yes / no
|
| | |
|
| | | $form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user
|
| | | $form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user
|
| | | $form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete
|
| | | $form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete
|
| | | $form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete
|
| | |
|
| | | // Clients may not change the website basic settings if they are not resellers
|
| | | if($app->auth->has_clients($_SESSION['s']['user']['userid']) || $app->auth->is_admin()) {
|
| | | $web_domain_edit_readonly = false;
|
| | | } else {
|
| | | $web_domain_edit_readonly = true;
|
| | | }
|
| | |
|
| | |
|
| | | $form["tabs"]['domain'] = array (
|
| | | 'title' => "Domain",
|
| | | 'width' => 100,
|
| | | 'template' => "templates/web_domain_edit.htm",
|
| | | 'readonly' => $web_domain_edit_readonly,
|
| | | 'fields' => array (
|
| | | ##################################
|
| | | # Begin Datatable fields
|
| | | ##################################
|
| | | 'server_id' => array (
|
| | | 'datatype' => 'INTEGER',
|
| | | 'formtype' => 'SELECT',
|
| | | 'default' => '',
|
| | | 'datasource' => array ( 'type' => 'SQL',
|
| | | 'querystring' => 'SELECT server_id,server_name FROM server WHERE web_server = 1 AND {AUTHSQL} ORDER BY server_name',
|
| | | 'keyfield'=> 'server_id',
|
| | | 'valuefield'=> 'server_name'
|
| | | ),
|
| | | 'value' => ''
|
| | | ),
|
| | | 'ip_address' => array (
|
| | | 'datatype' => 'VARCHAR',
|
| | | 'formtype' => 'SELECT',
|
| | | 'default' => '',
|
| | | 'datasource' => array ( 'type' => 'SQL',
|
| | | 'querystring' => 'SELECT ip_address,ip_address FROM server_ip WHERE {AUTHSQL} ORDER BY ip_address',
|
| | | 'keyfield'=> 'ip_address',
|
| | | 'valuefield'=> 'ip_address'
|
| | | ),
|
| | | 'value' => ''
|
| | | ),
|
| | | 'domain' => array (
|
| | | 'datatype' => 'VARCHAR',
|
| | | 'formtype' => 'TEXT',
|
| | | 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY',
|
| | | 'errmsg'=> 'domain_error_empty'),
|
| | | 1 => array ( 'type' => 'UNIQUE',
|
| | | 'errmsg'=> 'domain_error_unique'),
|
| | | 2 => array ( 'type' => 'REGEX',
|
| | | 'regex' => '/^[\w\.\-]{2,64}\.[a-zA-Z]{2,10}$/',
|
| | | 'errmsg'=> 'domain_error_regex'),
|
| | | ),
|
| | | 'default' => '',
|
| | | 'value' => '',
|
| | | 'width' => '30',
|
| | | 'maxlength' => '255'
|
| | | ),
|
| | | 'type' => array (
|
| | | 'datatype' => 'VARCHAR',
|
| | | 'formtype' => 'SELECT',
|
| | | 'default' => 'y',
|
| | | 'value' => array('vhost' => 'Site', 'alias' => 'Alias')
|
| | | ),
|
| | | 'parent_domain_id' => array (
|
| | | 'datatype' => 'INTEGER',
|
| | | 'formtype' => 'SELECT',
|
| | | 'default' => '',
|
| | | 'datasource' => array ( 'type' => 'SQL',
|
| | | 'querystring' => "SELECT domain_id,domain FROM web_domain WHERE type = 'site' AND {AUTHSQL} ORDER BY domain",
|
| | | 'keyfield'=> 'domain_id',
|
| | | 'valuefield'=> 'domain'
|
| | | ),
|
| | | 'value' => ''
|
| | | ),
|
| | | 'vhost_type' => array (
|
| | | 'datatype' => 'VARCHAR',
|
| | | 'formtype' => 'SELECT',
|
| | | 'default' => 'y',
|
| | | 'value' => array('name' => 'Namebased', 'ip' => 'IP-Based')
|
| | | ),
|
| | | 'hd_quota' => array (
|
| | | 'datatype' => 'INTEGER',
|
| | | 'formtype' => 'TEXT',
|
| | | 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY',
|
| | | 'errmsg'=> 'hd_quota_error_empty'),
|
| | | ),
|
| | | 'default' => '-1',
|
| | | 'value' => '',
|
| | | 'width' => '7',
|
| | | 'maxlength' => '7'
|
| | | ),
|
| | | 'traffic_quota' => array (
|
| | | 'datatype' => 'INTEGER',
|
| | | 'formtype' => 'TEXT',
|
| | | 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY',
|
| | | 'errmsg'=> 'traffic_quota_error_empty'),
|
| | | ),
|
| | | 'default' => '-1',
|
| | | 'value' => '',
|
| | | 'width' => '7',
|
| | | 'maxlength' => '7'
|
| | | ),
|
| | | 'cgi' => array (
|
| | | 'datatype' => 'VARCHAR',
|
| | | 'formtype' => 'CHECKBOX',
|
| | | 'default' => 'n',
|
| | | 'value' => array(0 => 'n',1 => 'y')
|
| | | ),
|
| | | 'ssi' => array (
|
| | | 'datatype' => 'VARCHAR',
|
| | | 'formtype' => 'CHECKBOX',
|
| | | 'default' => 'n',
|
| | | 'value' => array(0 => 'n',1 => 'y')
|
| | | ),
|
| | | 'suexec' => array (
|
| | | 'datatype' => 'VARCHAR',
|
| | | 'formtype' => 'CHECKBOX',
|
| | | 'default' => 'n',
|
| | | 'value' => array(0 => 'n',1 => 'y')
|
| | | ),
|
| | | 'errordocs' => array (
|
| | | 'datatype' => 'INTEGER',
|
| | | 'formtype' => 'CHECKBOX',
|
| | | 'default' => '1',
|
| | | 'value' => array(0 => '0',1 => '1')
|
| | | ),
|
| | | 'subdomain' => array (
|
| | | 'datatype' => 'VARCHAR',
|
| | | 'formtype' => 'SELECT',
|
| | | 'default' => 'y',
|
| | | 'value' => array('none' => 'none', 'www' => 'www.', '*' => '*.')
|
| | | ),
|
| | | 'ssl' => array (
|
| | | 'datatype' => 'VARCHAR',
|
| | | 'formtype' => 'CHECKBOX',
|
| | | 'default' => 'n',
|
| | | 'value' => array(0 => 'n',1 => 'y')
|
| | | ),
|
| | | 'php' => array (
|
| | | 'datatype' => 'VARCHAR',
|
| | | 'formtype' => 'SELECT',
|
| | | 'default' => 'fast-cgi',
|
| | | 'value' => array('' => 'Disabled', 'fast-cgi' => 'Fast-CGI', 'cgi' => 'CGI', 'mod' => 'Mod-PHP', 'suphp' => 'SuPHP')
|
| | | ),
|
| | | 'active' => array (
|
| | | 'datatype' => 'VARCHAR',
|
| | | 'formtype' => 'CHECKBOX',
|
| | | 'default' => 'y',
|
| | | 'value' => array(0 => 'n',1 => 'y')
|
| | | ),
|
| | | ##################################
|
| | | # ENDE Datatable fields
|
| | | ##################################
|
| | | )
|
| | | );
|
| | |
|
| | |
|
| | | $form["tabs"]['redirect'] = array (
|
| | | 'title' => "Redirect",
|
| | | 'width' => 100,
|
| | | 'template' => "templates/web_domain_redirect.htm",
|
| | | 'readonly' => false,
|
| | | 'fields' => array (
|
| | | ##################################
|
| | | # Begin Datatable fields
|
| | | ##################################
|
| | | 'redirect_type' => array (
|
| | | 'datatype' => 'VARCHAR',
|
| | | 'formtype' => 'SELECT',
|
| | | 'default' => '',
|
| | | 'value' => array('' => 'No redirect', 'R' => 'R', 'L' => 'L')
|
| | | ),
|
| | | 'redirect_path' => array (
|
| | | 'datatype' => 'VARCHAR',
|
| | | 'formtype' => 'TEXT',
|
| | | 'default' => '',
|
| | | 'value' => '',
|
| | | 'width' => '30',
|
| | | 'maxlength' => '255'
|
| | | ),
|
| | | ##################################
|
| | | # ENDE Datatable fields
|
| | | ##################################
|
| | | )
|
| | | );
|
| | |
|
| | | $form["tabs"]['ssl'] = array (
|
| | | 'title' => "SSL",
|
| | | 'width' => 100,
|
| | | 'template' => "templates/web_domain_ssl.htm",
|
| | | 'readonly' => false,
|
| | | 'fields' => array (
|
| | | ##################################
|
| | | # Begin Datatable fields
|
| | | ##################################
|
| | | 'ssl_state' => array (
|
| | | 'datatype' => 'VARCHAR',
|
| | | 'formtype' => 'TEXT',
|
| | | 'default' => '',
|
| | | 'value' => '',
|
| | | 'width' => '30',
|
| | | 'maxlength' => '255'
|
| | | ),
|
| | | 'ssl_locality' => array (
|
| | | 'datatype' => 'VARCHAR',
|
| | | 'formtype' => 'TEXT',
|
| | | 'default' => '',
|
| | | 'value' => '',
|
| | | 'width' => '30',
|
| | | 'maxlength' => '255'
|
| | | ),
|
| | | 'ssl_organisation' => array (
|
| | | 'datatype' => 'VARCHAR',
|
| | | 'formtype' => 'TEXT',
|
| | | 'default' => '',
|
| | | 'value' => '',
|
| | | 'width' => '30',
|
| | | 'maxlength' => '255'
|
| | | ),
|
| | | 'ssl_organisation_unit' => array (
|
| | | 'datatype' => 'VARCHAR',
|
| | | 'formtype' => 'TEXT',
|
| | | 'default' => '',
|
| | | 'value' => '',
|
| | | 'width' => '30',
|
| | | 'maxlength' => '255'
|
| | | ),
|
| | | 'ssl_country' => array (
|
| | | 'datatype' => 'VARCHAR',
|
| | | 'formtype' => 'TEXT',
|
| | | 'default' => '',
|
| | | 'value' => '',
|
| | | 'width' => '2',
|
| | | 'maxlength' => '2'
|
| | | ),
|
| | | 'ssl_request' => array (
|
| | | 'datatype' => 'TEXT',
|
| | | 'formtype' => 'TEXTAREA',
|
| | | 'default' => '',
|
| | | 'value' => '',
|
| | | 'cols' => '30',
|
| | | 'rows' => '10'
|
| | | ),
|
| | | 'ssl_cert' => array (
|
| | | 'datatype' => 'TEXT',
|
| | | 'formtype' => 'TEXTAREA',
|
| | | 'default' => '',
|
| | | 'value' => '',
|
| | | 'cols' => '30',
|
| | | 'rows' => '10'
|
| | | ),
|
| | | 'ssl_bundle' => array (
|
| | | 'datatype' => 'TEXT',
|
| | | 'formtype' => 'TEXTAREA',
|
| | | 'default' => '',
|
| | | 'value' => '',
|
| | | 'cols' => '30',
|
| | | 'rows' => '10'
|
| | | ),
|
| | | 'ssl_action' => array (
|
| | | 'datatype' => 'VARCHAR',
|
| | | 'formtype' => 'SELECT',
|
| | | 'default' => '',
|
| | | 'value' => array('' => 'None', 'save' => 'Save Certificate', 'create' => 'Create Certificate','del' => 'Delete Certificate')
|
| | | ),
|
| | | ##################################
|
| | | # ENDE Datatable fields
|
| | | ##################################
|
| | | )
|
| | | );
|
| | |
|
| | | if($_SESSION["s"]["user"]["typ"] == 'admin') {
|
| | |
|
| | | $form["tabs"]['advanced'] = array (
|
| | | 'title' => "Options",
|
| | | 'width' => 100,
|
| | | 'template' => "templates/web_domain_advanced.htm",
|
| | | 'readonly' => false,
|
| | | 'fields' => array (
|
| | | ##################################
|
| | | # Begin Datatable fields
|
| | | ##################################
|
| | | 'document_root' => array (
|
| | | 'datatype' => 'VARCHAR',
|
| | | 'formtype' => 'TEXT',
|
| | | 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY',
|
| | | 'errmsg'=> 'documentroot_error_empty'),
|
| | | ),
|
| | | 'default' => '',
|
| | | 'value' => '',
|
| | | 'width' => '30',
|
| | | 'maxlength' => '255'
|
| | | ),
|
| | | 'system_user' => array (
|
| | | 'datatype' => 'VARCHAR',
|
| | | 'formtype' => 'TEXT',
|
| | | 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY',
|
| | | 'errmsg'=> 'sysuser_error_empty'),
|
| | | ),
|
| | | 'default' => '',
|
| | | 'value' => '',
|
| | | 'width' => '30',
|
| | | 'maxlength' => '255'
|
| | | ),
|
| | | 'system_group' => array (
|
| | | 'datatype' => 'VARCHAR',
|
| | | 'formtype' => 'TEXT',
|
| | | 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY',
|
| | | 'errmsg'=> 'sysgroup_error_empty'),
|
| | | ),
|
| | | 'default' => '',
|
| | | 'value' => '',
|
| | | 'width' => '30',
|
| | | 'maxlength' => '255'
|
| | | ),
|
| | | 'apache_directives' => array (
|
| | | 'datatype' => 'TEXT',
|
| | | 'formtype' => 'TEXT',
|
| | | 'default' => '',
|
| | | 'value' => '',
|
| | | 'width' => '30',
|
| | | 'maxlength' => '255'
|
| | | ),
|
| | | ##################################
|
| | | # ENDE Datatable fields
|
| | | ##################################
|
| | | )
|
| | | );
|
| | |
|
| | | }
|
| | |
|
| | |
|
| | | <?php |
| | | |
| | | /* |
| | | Form Definition |
| | | |
| | | Tabledefinition |
| | | |
| | | Datatypes: |
| | | - INTEGER (Forces the input to Int) |
| | | - DOUBLE |
| | | - CURRENCY (Formats the values to currency notation) |
| | | - VARCHAR (no format check, maxlength: 255) |
| | | - TEXT (no format check) |
| | | - DATE (Dateformat, automatic conversion to timestamps) |
| | | |
| | | Formtype: |
| | | - TEXT (Textfield) |
| | | - TEXTAREA (Textarea) |
| | | - PASSWORD (Password textfield, input is not shown when edited) |
| | | - SELECT (Select option field) |
| | | - RADIO |
| | | - CHECKBOX |
| | | - CHECKBOXARRAY |
| | | - FILE |
| | | |
| | | VALUE: |
| | | - Wert oder Array |
| | | |
| | | Hint: |
| | | The ID field of the database table is not part of the datafield definition. |
| | | The ID field must be always auto incement (int or bigint). |
| | | |
| | | |
| | | */ |
| | | |
| | | $form["title"] = "Web Domain"; |
| | | $form["description"] = ""; |
| | | $form["name"] = "web_domain"; |
| | | $form["action"] = "web_domain_edit.php"; |
| | | $form["db_table"] = "web_domain"; |
| | | $form["db_table_idx"] = "domain_id"; |
| | | $form["db_history"] = "yes"; |
| | | $form["tab_default"] = "domain"; |
| | | $form["list_default"] = "web_domain_list.php"; |
| | | $form["auth"] = 'yes'; // yes / no |
| | | |
| | | $form["auth_preset"]["userid"] = 0; // 0 = id of the user, > 0 id must match with id of current user |
| | | $form["auth_preset"]["groupid"] = 0; // 0 = default groupid of the user, > 0 id must match with groupid of current user |
| | | $form["auth_preset"]["perm_user"] = 'riud'; //r = read, i = insert, u = update, d = delete |
| | | $form["auth_preset"]["perm_group"] = 'riud'; //r = read, i = insert, u = update, d = delete |
| | | $form["auth_preset"]["perm_other"] = ''; //r = read, i = insert, u = update, d = delete |
| | | |
| | | // Clients may not change the website basic settings if they are not resellers |
| | | if($app->auth->has_clients($_SESSION['s']['user']['userid']) || $app->auth->is_admin()) { |
| | | $web_domain_edit_readonly = false; |
| | | } else { |
| | | $web_domain_edit_readonly = true; |
| | | } |
| | | |
| | | |
| | | $form["tabs"]['domain'] = array ( |
| | | 'title' => "Domain", |
| | | 'width' => 100, |
| | | 'template' => "templates/web_domain_edit.htm", |
| | | 'readonly' => $web_domain_edit_readonly, |
| | | 'fields' => array ( |
| | | ################################## |
| | | # Begin Datatable fields |
| | | ################################## |
| | | 'server_id' => array ( |
| | | 'datatype' => 'INTEGER', |
| | | 'formtype' => 'SELECT', |
| | | 'default' => '', |
| | | 'datasource' => array ( 'type' => 'SQL', |
| | | 'querystring' => 'SELECT server_id,server_name FROM server WHERE web_server = 1 AND {AUTHSQL} ORDER BY server_name', |
| | | 'keyfield'=> 'server_id', |
| | | 'valuefield'=> 'server_name' |
| | | ), |
| | | 'value' => '' |
| | | ), |
| | | 'ip_address' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'SELECT', |
| | | 'default' => '', |
| | | 'datasource' => array ( 'type' => 'SQL', |
| | | 'querystring' => 'SELECT ip_address,ip_address FROM server_ip WHERE {AUTHSQL} ORDER BY ip_address', |
| | | 'keyfield'=> 'ip_address', |
| | | 'valuefield'=> 'ip_address' |
| | | ), |
| | | 'value' => '' |
| | | ), |
| | | 'domain' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'TEXT', |
| | | 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', |
| | | 'errmsg'=> 'domain_error_empty'), |
| | | 1 => array ( 'type' => 'UNIQUE', |
| | | 'errmsg'=> 'domain_error_unique'), |
| | | 2 => array ( 'type' => 'REGEX', |
| | | 'regex' => '/^[\w\.\-]{2,64}\.[a-zA-Z]{2,10}$/', |
| | | 'errmsg'=> 'domain_error_regex'), |
| | | ), |
| | | 'default' => '', |
| | | 'value' => '', |
| | | 'width' => '30', |
| | | 'maxlength' => '255' |
| | | ), |
| | | 'type' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'SELECT', |
| | | 'default' => 'y', |
| | | 'value' => array('vhost' => 'Site', 'alias' => 'Alias') |
| | | ), |
| | | 'parent_domain_id' => array ( |
| | | 'datatype' => 'INTEGER', |
| | | 'formtype' => 'SELECT', |
| | | 'default' => '', |
| | | 'datasource' => array ( 'type' => 'SQL', |
| | | 'querystring' => "SELECT domain_id,domain FROM web_domain WHERE type = 'site' AND {AUTHSQL} ORDER BY domain", |
| | | 'keyfield'=> 'domain_id', |
| | | 'valuefield'=> 'domain' |
| | | ), |
| | | 'value' => '' |
| | | ), |
| | | 'vhost_type' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'SELECT', |
| | | 'default' => 'y', |
| | | 'value' => array('name' => 'Namebased', 'ip' => 'IP-Based') |
| | | ), |
| | | 'hd_quota' => array ( |
| | | 'datatype' => 'INTEGER', |
| | | 'formtype' => 'TEXT', |
| | | 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', |
| | | 'errmsg'=> 'hd_quota_error_empty'), |
| | | ), |
| | | 'default' => '-1', |
| | | 'value' => '', |
| | | 'width' => '7', |
| | | 'maxlength' => '7' |
| | | ), |
| | | 'traffic_quota' => array ( |
| | | 'datatype' => 'INTEGER', |
| | | 'formtype' => 'TEXT', |
| | | 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', |
| | | 'errmsg'=> 'traffic_quota_error_empty'), |
| | | ), |
| | | 'default' => '-1', |
| | | 'value' => '', |
| | | 'width' => '7', |
| | | 'maxlength' => '7' |
| | | ), |
| | | 'cgi' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'CHECKBOX', |
| | | 'default' => 'n', |
| | | 'value' => array(0 => 'n',1 => 'y') |
| | | ), |
| | | 'ssi' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'CHECKBOX', |
| | | 'default' => 'n', |
| | | 'value' => array(0 => 'n',1 => 'y') |
| | | ), |
| | | 'suexec' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'CHECKBOX', |
| | | 'default' => 'n', |
| | | 'value' => array(0 => 'n',1 => 'y') |
| | | ), |
| | | 'errordocs' => array ( |
| | | 'datatype' => 'INTEGER', |
| | | 'formtype' => 'CHECKBOX', |
| | | 'default' => '1', |
| | | 'value' => array(0 => '0',1 => '1') |
| | | ), |
| | | 'subdomain' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'SELECT', |
| | | 'default' => 'y', |
| | | 'value' => array('none' => 'none', 'www' => 'www.', '*' => '*.') |
| | | ), |
| | | 'ssl' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'CHECKBOX', |
| | | 'default' => 'n', |
| | | 'value' => array(0 => 'n',1 => 'y') |
| | | ), |
| | | 'php' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'SELECT', |
| | | 'default' => 'fast-cgi', |
| | | 'valuelimit' => 'client:web_php_options', |
| | | 'value' => array('no' => 'Disabled', 'fast-cgi' => 'Fast-CGI', 'cgi' => 'CGI', 'mod' => 'Mod-PHP', 'suphp' => 'SuPHP') |
| | | ), |
| | | 'active' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'CHECKBOX', |
| | | 'default' => 'y', |
| | | 'value' => array(0 => 'n',1 => 'y') |
| | | ), |
| | | ################################## |
| | | # ENDE Datatable fields |
| | | ################################## |
| | | ) |
| | | ); |
| | | |
| | | |
| | | $form["tabs"]['redirect'] = array ( |
| | | 'title' => "Redirect", |
| | | 'width' => 100, |
| | | 'template' => "templates/web_domain_redirect.htm", |
| | | 'readonly' => false, |
| | | 'fields' => array ( |
| | | ################################## |
| | | # Begin Datatable fields |
| | | ################################## |
| | | 'redirect_type' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'SELECT', |
| | | 'default' => '', |
| | | 'value' => array('' => 'No redirect', 'R' => 'R', 'L' => 'L') |
| | | ), |
| | | 'redirect_path' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'TEXT', |
| | | 'default' => '', |
| | | 'value' => '', |
| | | 'width' => '30', |
| | | 'maxlength' => '255' |
| | | ), |
| | | ################################## |
| | | # ENDE Datatable fields |
| | | ################################## |
| | | ) |
| | | ); |
| | | |
| | | $form["tabs"]['ssl'] = array ( |
| | | 'title' => "SSL", |
| | | 'width' => 100, |
| | | 'template' => "templates/web_domain_ssl.htm", |
| | | 'readonly' => false, |
| | | 'fields' => array ( |
| | | ################################## |
| | | # Begin Datatable fields |
| | | ################################## |
| | | 'ssl_state' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'TEXT', |
| | | 'default' => '', |
| | | 'value' => '', |
| | | 'width' => '30', |
| | | 'maxlength' => '255' |
| | | ), |
| | | 'ssl_locality' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'TEXT', |
| | | 'default' => '', |
| | | 'value' => '', |
| | | 'width' => '30', |
| | | 'maxlength' => '255' |
| | | ), |
| | | 'ssl_organisation' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'TEXT', |
| | | 'default' => '', |
| | | 'value' => '', |
| | | 'width' => '30', |
| | | 'maxlength' => '255' |
| | | ), |
| | | 'ssl_organisation_unit' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'TEXT', |
| | | 'default' => '', |
| | | 'value' => '', |
| | | 'width' => '30', |
| | | 'maxlength' => '255' |
| | | ), |
| | | 'ssl_country' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'TEXT', |
| | | 'default' => '', |
| | | 'value' => '', |
| | | 'width' => '2', |
| | | 'maxlength' => '2' |
| | | ), |
| | | 'ssl_request' => array ( |
| | | 'datatype' => 'TEXT', |
| | | 'formtype' => 'TEXTAREA', |
| | | 'default' => '', |
| | | 'value' => '', |
| | | 'cols' => '30', |
| | | 'rows' => '10' |
| | | ), |
| | | 'ssl_cert' => array ( |
| | | 'datatype' => 'TEXT', |
| | | 'formtype' => 'TEXTAREA', |
| | | 'default' => '', |
| | | 'value' => '', |
| | | 'cols' => '30', |
| | | 'rows' => '10' |
| | | ), |
| | | 'ssl_bundle' => array ( |
| | | 'datatype' => 'TEXT', |
| | | 'formtype' => 'TEXTAREA', |
| | | 'default' => '', |
| | | 'value' => '', |
| | | 'cols' => '30', |
| | | 'rows' => '10' |
| | | ), |
| | | 'ssl_action' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'SELECT', |
| | | 'default' => '', |
| | | 'value' => array('' => 'None', 'save' => 'Save Certificate', 'create' => 'Create Certificate','del' => 'Delete Certificate') |
| | | ), |
| | | ################################## |
| | | # ENDE Datatable fields |
| | | ################################## |
| | | ) |
| | | ); |
| | | |
| | | if($_SESSION["s"]["user"]["typ"] == 'admin') { |
| | | |
| | | $form["tabs"]['advanced'] = array ( |
| | | 'title' => "Options", |
| | | 'width' => 100, |
| | | 'template' => "templates/web_domain_advanced.htm", |
| | | 'readonly' => false, |
| | | 'fields' => array ( |
| | | ################################## |
| | | # Begin Datatable fields |
| | | ################################## |
| | | 'document_root' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'TEXT', |
| | | 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', |
| | | 'errmsg'=> 'documentroot_error_empty'), |
| | | ), |
| | | 'default' => '', |
| | | 'value' => '', |
| | | 'width' => '30', |
| | | 'maxlength' => '255' |
| | | ), |
| | | 'system_user' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'TEXT', |
| | | 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', |
| | | 'errmsg'=> 'sysuser_error_empty'), |
| | | ), |
| | | 'default' => '', |
| | | 'value' => '', |
| | | 'width' => '30', |
| | | 'maxlength' => '255' |
| | | ), |
| | | 'system_group' => array ( |
| | | 'datatype' => 'VARCHAR', |
| | | 'formtype' => 'TEXT', |
| | | 'validators' => array ( 0 => array ( 'type' => 'NOTEMPTY', |
| | | 'errmsg'=> 'sysgroup_error_empty'), |
| | | ), |
| | | 'default' => '', |
| | | 'value' => '', |
| | | 'width' => '30', |
| | | 'maxlength' => '255' |
| | | ), |
| | | 'apache_directives' => array ( |
| | | 'datatype' => 'TEXT', |
| | | 'formtype' => 'TEXT', |
| | | 'default' => '', |
| | | 'value' => '', |
| | | 'width' => '30', |
| | | 'maxlength' => '255' |
| | | ), |
| | | ################################## |
| | | # ENDE Datatable fields |
| | | ################################## |
| | | ) |
| | | ); |
| | | |
| | | } |
| | | |
| | | |
| | | ?> |