From 6352781154e6c7f5395b0527ee1d1780f996166d Mon Sep 17 00:00:00 2001
From: mcramer <m.cramer@pixcept.de>
Date: Mon, 25 Mar 2013 12:48:48 -0400
Subject: [PATCH] - Implemented   New global option to grant reseller users access to the options (advanced) tab in web domains and vhost subdomains

---
 interface/web/admin/lib/lang/en_system_config.lng          |    1 
 interface/web/sites/form/web_vhost_subdomain.tform.php     |    6 +
 install/tpl/system.ini.master                              |    1 
 interface/web/sites/web_vhost_subdomain_edit.php           |   49 ++++++++++++++++
 interface/web/admin/lib/lang/de_system_config.lng          |    1 
 interface/web/sites/web_domain_edit.php                    |   47 +++++++++++++++
 interface/web/admin/templates/system_config_sites_edit.htm |    6 ++
 interface/web/sites/form/web_domain.tform.php              |    6 +
 interface/web/admin/form/system_config.tform.php           |    6 ++
 9 files changed, 120 insertions(+), 3 deletions(-)

diff --git a/install/tpl/system.ini.master b/install/tpl/system.ini.master
index 599369a..24f7eba 100644
--- a/install/tpl/system.ini.master
+++ b/install/tpl/system.ini.master
@@ -23,6 +23,7 @@
 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 40e9868..0d64014 100644
--- a/interface/web/admin/form/system_config.tform.php
+++ b/interface/web/admin/form/system_config.tform.php
@@ -160,6 +160,12 @@
 			'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 8b93608..a3cd4a9 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['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 9424b19..ba061de 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['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 8a97e52..b687a51 100644
--- a/interface/web/admin/templates/system_config_sites_edit.htm
+++ b/interface/web/admin/templates/system_config_sites_edit.htm
@@ -51,6 +51,12 @@
                     {tmpl_var name='client_username_web_check_disabled'}
                 </div>
             </div>
+			<div class="ctrlHolder">
+                <p class="label">{tmpl_var name='reseller_can_use_options_txt'}</p>
+                <div class="multiField">
+                    {tmpl_var name='reseller_can_use_options'}
+                </div>
+            </div>
         </fieldset>
             
         <input type="hidden" name="id" value="{tmpl_var name='id'}">
diff --git a/interface/web/sites/form/web_domain.tform.php b/interface/web/sites/form/web_domain.tform.php
index fcbd8d8..a55fe4d 100644
--- a/interface/web/sites/form/web_domain.tform.php
+++ b/interface/web/sites/form/web_domain.tform.php
@@ -72,6 +72,9 @@
     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 @@
 
 // }
 
-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 bb12974..cb1f6cc 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($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 @@
 
 // }
 
-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 b21b1c8..2d7e9a9 100644
--- a/interface/web/sites/web_domain_edit.php
+++ b/interface/web/sites/web_domain_edit.php
@@ -253,6 +253,53 @@
             // 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 .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.$php_directive_snippet['name'].']<pre class="addPlaceholderContent" style="display:none;">'.htmlentities($php_directive_snippet['snippet']).'</pre></a> ';
+                        }
+                }
+                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 .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.$apache_directive_snippet['name'].']<pre class="addPlaceholderContent" style="display:none;">'.htmlentities($apache_directive_snippet['snippet']).'</pre></a> ';
+                            }
+                    }
+                    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 .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.$nginx_directive_snippet['name'].']<pre class="addPlaceholderContent" style="display:none;">'.htmlentities($nginx_directive_snippet['snippet']).'</pre></a> ';
+                            }
+                    }
+                    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 .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.$proxy_directive_snippet['name'].']<pre class="addPlaceholderContent" style="display:none;">'.htmlentities($proxy_directive_snippet['snippet']).'</pre></a> ';
+                        }
+                }
+                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 6ea122d..58e2474 100644
--- a/interface/web/sites/web_vhost_subdomain_edit.php
+++ b/interface/web/sites/web_vhost_subdomain_edit.php
@@ -164,7 +164,54 @@
             // 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 .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.$php_directive_snippet['name'].']<pre class="addPlaceholderContent" style="display:none;">'.$php_directive_snippet['snippet'].'</pre></a> ';
+                        }
+                }
+                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 .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.$apache_directive_snippet['name'].']<pre class="addPlaceholderContent" style="display:none;">'.$apache_directive_snippet['snippet'].'</pre></a> ';
+                            }
+                    }
+                    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 .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.$nginx_directive_snippet['name'].']<pre class="addPlaceholderContent" style="display:none;">'.$nginx_directive_snippet['snippet'].'</pre></a> ';
+                            }
+                    }
+                    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 .= '<a href="javascript:void(0);" class="addPlaceholderContent">['.$proxy_directive_snippet['name'].']<pre class="addPlaceholderContent" style="display:none;">'.$proxy_directive_snippet['snippet'].'</pre></a> ';
+                        }
+                }
+                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 {
 

--
Gitblit v1.9.1