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'].']'.htmlentities($php_directive_snippet['snippet']).'
';
+ }
+ }
+ 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'].']'.htmlentities($apache_directive_snippet['snippet']).'
';
+ }
+ }
+ 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'].']'.htmlentities($nginx_directive_snippet['snippet']).'
';
+ }
+ }
+ 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'].']'.htmlentities($proxy_directive_snippet['snippet']).'
';
+ }
+ }
+ 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'].']'.$php_directive_snippet['snippet'].'
';
+ }
+ }
+ 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'].']'.$apache_directive_snippet['snippet'].'
';
+ }
+ }
+ 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'].']'.$nginx_directive_snippet['snippet'].'
';
+ }
+ }
+ 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'].']'.$proxy_directive_snippet['snippet'].'
';
+ }
+ }
+ 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 {