diff --git a/install/tpl/system.ini.master b/install/tpl/system.ini.master index 599369a1899c3d9e36011d3c3c39d5687062a448..24f7eba57355ced7fe800049d9cfb9461a71afdd 100644 --- a/install/tpl/system.ini.master +++ b/install/tpl/system.ini.master @@ -23,6 +23,7 @@ dblist_phpmyadmin_link=y phpmyadmin_url=/phpmyadmin webftp_url= client_username_web_check_disabled=n +reseller_can_use_options=n [tools] diff --git a/interface/web/admin/form/system_config.tform.php b/interface/web/admin/form/system_config.tform.php index 40e9868c1e6e937c9e34ac53cbfa5a2b6f45958a..0d64014cf0c9c7060c792e0240817f19719bfef7 100644 --- a/interface/web/admin/form/system_config.tform.php +++ b/interface/web/admin/form/system_config.tform.php @@ -160,6 +160,12 @@ $form["tabs"]['sites'] = array ( 'default' => 'n', 'value' => array(0 => 'n',1 => 'y') ), + 'reseller_can_use_options' => array ( + 'datatype' => 'VARCHAR', + 'formtype' => 'CHECKBOX', + 'default' => 'n', + 'value' => array(0 => 'n',1 => 'y') + ), ################################## # ENDE Datatable fields ################################## diff --git a/interface/web/admin/lib/lang/de_system_config.lng b/interface/web/admin/lib/lang/de_system_config.lng index 8b936081fce0a5f93f4e0c8f7451af125c706d08..a3cd4a90fd2672f4f63804eced6d0fc4202f9de8 100644 --- a/interface/web/admin/lib/lang/de_system_config.lng +++ b/interface/web/admin/lib/lang/de_system_config.lng @@ -49,4 +49,5 @@ $wb['client_username_web_check_disabled_txt'] = 'Deaktiviere die Kunden Benutzer $wb['mailbox_show_autoresponder_tab_txt'] = 'Zeige Autoresponder Reiter in E-Mail Kontodetails'; $wb['mailbox_show_mail_filter_tab_txt'] = 'Zeige E-Mail Filter Reiter in E-Mail Kontodetails'; $wb['mailbox_show_custom_rules_tab_txt'] = 'Zeige Benutzerregel Reiter in E-Mail Kontodetails'; +$wb['reseller_can_use_options_txt'] = 'Reseller können den Optionen Reiter bei Webseiten verwenden'; ?> diff --git a/interface/web/admin/lib/lang/en_system_config.lng b/interface/web/admin/lib/lang/en_system_config.lng index 9424b19cb1a6f75f48e785e6fb84479f87740bb5..ba061de90a784ba71c6d7efed7b04ec95d6f3c94 100644 --- a/interface/web/admin/lib/lang/en_system_config.lng +++ b/interface/web/admin/lib/lang/en_system_config.lng @@ -52,4 +52,5 @@ $wb['client_username_web_check_disabled_txt'] = 'Disable client username check f $wb['mailbox_show_autoresponder_tab_txt'] = 'Show autoresponder tab in mail account details'; $wb['mailbox_show_mail_filter_tab_txt'] = 'Show mail filter tab in mail account details'; $wb['mailbox_show_custom_rules_tab_txt'] = 'Show custom mailfilter tab in mail account details'; +$wb['reseller_can_use_options_txt'] = 'Reseller can use options tab in web sites config'; ?> diff --git a/interface/web/admin/templates/system_config_sites_edit.htm b/interface/web/admin/templates/system_config_sites_edit.htm index 8a97e52f88eda469df0128a9b708e9515d1c1410..b687a51ec28eee8048a10a4b7dca8d97d1ede9f1 100644 --- a/interface/web/admin/templates/system_config_sites_edit.htm +++ b/interface/web/admin/templates/system_config_sites_edit.htm @@ -50,6 +50,12 @@
{tmpl_var name='client_username_web_check_disabled'}
+ +
+

{tmpl_var name='reseller_can_use_options_txt'}

+
+ {tmpl_var name='reseller_can_use_options'} +
diff --git a/interface/web/sites/form/web_domain.tform.php b/interface/web/sites/form/web_domain.tform.php index fcbd8d831df0c97825778fb2c95970ba6c8beb79..a55fe4d87772e6a2648ae294bc80a5309e49f791 100644 --- a/interface/web/sites/form/web_domain.tform.php +++ b/interface/web/sites/form/web_domain.tform.php @@ -72,6 +72,9 @@ if(!$app->auth->is_admin()) { if($client['limit_ssl'] != 'y') $ssl_available = false; } +$app->uses('getconf'); +$web_config = $app->getconf->get_global_config('sites'); + $form["tabs"]['domain'] = array ( 'title' => "Domain", 'width' => 100, @@ -524,7 +527,8 @@ $form["tabs"]['backup'] = array ( // } -if($_SESSION["s"]["user"]["typ"] == 'admin') { +if($_SESSION["s"]["user"]["typ"] == 'admin' + || ($web_config['reseller_can_use_options'] == 'y' && $app->auth->has_clients($_SESSION['s']['user']['userid']))) { $form["tabs"]['advanced'] = array ( 'title' => "Options", diff --git a/interface/web/sites/form/web_vhost_subdomain.tform.php b/interface/web/sites/form/web_vhost_subdomain.tform.php index bb12974c8b61e512ce271b0eff4cbd42c55a0e35..cb1f6cc0d27f0b2beb3780c30afa739e2891eb83 100644 --- a/interface/web/sites/form/web_vhost_subdomain.tform.php +++ b/interface/web/sites/form/web_vhost_subdomain.tform.php @@ -64,6 +64,9 @@ if(!$app->auth->is_admin()) { if($client['limit_ssl'] != 'y') $ssl_available = false; } +$app->uses('getconf'); +$web_config = $app->getconf->get_global_config('sites'); + $form["tabs"]['domain'] = array ( 'title' => "Domain", 'width' => 100, @@ -523,7 +526,8 @@ $form["tabs"]['backup'] = array ( // } -if($_SESSION["s"]["user"]["typ"] == 'admin') { +if($_SESSION["s"]["user"]["typ"] == 'admin' + || ($web_config['reseller_can_use_options'] == 'y' && $app->auth->has_clients($_SESSION['s']['user']['userid']))) { $form["tabs"]['advanced'] = array ( 'title' => "Options", diff --git a/interface/web/sites/web_domain_edit.php b/interface/web/sites/web_domain_edit.php index b21b1c89b0c4e1f21ee3aa13282e749596a6f236..2d7e9a9e2dc5b63be566848f76537db791ac2294 100644 --- a/interface/web/sites/web_domain_edit.php +++ b/interface/web/sites/web_domain_edit.php @@ -253,6 +253,53 @@ class page_action extends tform_actions { // add limits to template to be able to hide settings foreach($read_limits as $limit) $app->tpl->setVar($limit, $client[$limit]); + $sites_config = $app->getconf->get_global_config('sites'); + if($sites_config['reseller_can_use_options']) { + // Directive Snippets + $php_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'php' AND active = 'y'"); + $php_directive_snippets_txt = ''; + if(is_array($php_directive_snippets) && !empty($php_directive_snippets)){ + foreach($php_directive_snippets as $php_directive_snippet){ + $php_directive_snippets_txt .= '['.$php_directive_snippet['name'].'] '; + } + } + if($php_directive_snippets_txt == '') $php_directive_snippets_txt = '------'; + $app->tpl->setVar("php_directive_snippets_txt",$php_directive_snippets_txt); + + if($server_type == 'apache'){ + $apache_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'apache' AND active = 'y'"); + $apache_directive_snippets_txt = ''; + if(is_array($apache_directive_snippets) && !empty($apache_directive_snippets)){ + foreach($apache_directive_snippets as $apache_directive_snippet){ + $apache_directive_snippets_txt .= '['.$apache_directive_snippet['name'].'] '; + } + } + if($apache_directive_snippets_txt == '') $apache_directive_snippets_txt = '------'; + $app->tpl->setVar("apache_directive_snippets_txt",$apache_directive_snippets_txt); + } + + if($server_type == 'nginx'){ + $nginx_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'nginx' AND active = 'y'"); + $nginx_directive_snippets_txt = ''; + if(is_array($nginx_directive_snippets) && !empty($nginx_directive_snippets)){ + foreach($nginx_directive_snippets as $nginx_directive_snippet){ + $nginx_directive_snippets_txt .= '['.$nginx_directive_snippet['name'].'] '; + } + } + if($nginx_directive_snippets_txt == '') $nginx_directive_snippets_txt = '------'; + $app->tpl->setVar("nginx_directive_snippets_txt",$nginx_directive_snippets_txt); + } + + $proxy_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'proxy' AND active = 'y'"); + $proxy_directive_snippets_txt = ''; + if(is_array($proxy_directive_snippets) && !empty($proxy_directive_snippets)){ + foreach($proxy_directive_snippets as $proxy_directive_snippet){ + $proxy_directive_snippets_txt .= '['.$proxy_directive_snippet['name'].'] '; + } + } + if($proxy_directive_snippets_txt == '') $proxy_directive_snippets_txt = '------'; + $app->tpl->setVar("proxy_directive_snippets_txt",$proxy_directive_snippets_txt); + } //* Admin: If the logged in user is admin } else { diff --git a/interface/web/sites/web_vhost_subdomain_edit.php b/interface/web/sites/web_vhost_subdomain_edit.php index 6ea122d8e9fb5c4ebfb2042eb1ed1a104be99f86..58e2474a542749bccf975abdc4c69424705c0886 100644 --- a/interface/web/sites/web_vhost_subdomain_edit.php +++ b/interface/web/sites/web_vhost_subdomain_edit.php @@ -164,7 +164,54 @@ class page_action extends tform_actions { // add limits to template to be able to hide settings foreach($read_limits as $limit) $app->tpl->setVar($limit, $client[$limit]); - + $sites_config = $app->getconf->get_global_config('sites'); + if($sites_config['reseller_can_use_options']) { + // Directive Snippets + $php_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'php' AND active = 'y'"); + $php_directive_snippets_txt = ''; + if(is_array($php_directive_snippets) && !empty($php_directive_snippets)){ + foreach($php_directive_snippets as $php_directive_snippet){ + $php_directive_snippets_txt .= '['.$php_directive_snippet['name'].'] '; + } + } + if($php_directive_snippets_txt == '') $php_directive_snippets_txt = '------'; + $app->tpl->setVar("php_directive_snippets_txt",$php_directive_snippets_txt); + + if($server_type == 'apache'){ + $apache_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'apache' AND active = 'y'"); + $apache_directive_snippets_txt = ''; + if(is_array($apache_directive_snippets) && !empty($apache_directive_snippets)){ + foreach($apache_directive_snippets as $apache_directive_snippet){ + $apache_directive_snippets_txt .= '['.$apache_directive_snippet['name'].'] '; + } + } + if($apache_directive_snippets_txt == '') $apache_directive_snippets_txt = '------'; + $app->tpl->setVar("apache_directive_snippets_txt",$apache_directive_snippets_txt); + } + + if($server_type == 'nginx'){ + $nginx_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'nginx' AND active = 'y'"); + $nginx_directive_snippets_txt = ''; + if(is_array($nginx_directive_snippets) && !empty($nginx_directive_snippets)){ + foreach($nginx_directive_snippets as $nginx_directive_snippet){ + $nginx_directive_snippets_txt .= '['.$nginx_directive_snippet['name'].'] '; + } + } + if($nginx_directive_snippets_txt == '') $nginx_directive_snippets_txt = '------'; + $app->tpl->setVar("nginx_directive_snippets_txt",$nginx_directive_snippets_txt); + } + + $proxy_directive_snippets = $app->db->queryAllRecords("SELECT * FROM directive_snippets WHERE type = 'proxy' AND active = 'y'"); + $proxy_directive_snippets_txt = ''; + if(is_array($proxy_directive_snippets) && !empty($proxy_directive_snippets)){ + foreach($proxy_directive_snippets as $proxy_directive_snippet){ + $proxy_directive_snippets_txt .= '['.$proxy_directive_snippet['name'].'] '; + } + } + if($proxy_directive_snippets_txt == '') $proxy_directive_snippets_txt = '------'; + $app->tpl->setVar("proxy_directive_snippets_txt",$proxy_directive_snippets_txt); + } + //* Admin: If the logged in user is admin } else {