From 9a82cd444571c81346b2b84636f196ea16a19f23 Mon Sep 17 00:00:00 2001
From: mcramer <m.cramer@pixcept.de>
Date: Tue, 18 Dec 2012 10:59:26 -0500
Subject: [PATCH] Fixed:  FS#2586 - Domain list is empty in reseller login when domain module is active 

---
 interface/lib/classes/tools_sites.inc.php        |   27 +++++++++
 interface/web/sites/web_aliasdomain_edit.php     |   23 +------
 interface/web/sites/web_vhost_subdomain_edit.php |   23 +------
 interface/web/mail/mail_domain_edit.php          |   23 +------
 interface/web/sites/web_subdomain_edit.php       |   17 +----
 interface/web/sites/web_domain_edit.php          |   23 +------
 6 files changed, 47 insertions(+), 89 deletions(-)

diff --git a/interface/lib/classes/tools_sites.inc.php b/interface/lib/classes/tools_sites.inc.php
index c501173..deb57f5 100644
--- a/interface/lib/classes/tools_sites.inc.php
+++ b/interface/lib/classes/tools_sites.inc.php
@@ -143,6 +143,33 @@
         }
         return $res;
     }
+    
+    function getDomainModuleDomains() {
+        global $app;
+        
+        $sql = "SELECT domain_id, domain FROM domain WHERE";
+        if ($_SESSION["s"]["user"]["typ"] == 'admin') {
+            $sql .= " 1";
+        } else {
+            $groups = ( $_SESSION["s"]["user"]["groups"] ) ? $_SESSION["s"]["user"]["groups"] : 0;
+            $sql .= " sys_groupid IN (".$groups.")";
+        }
+        $sql .= " ORDER BY domain";
+        return $app->db->queryAllRecords($sql);
+    }
+    
+    function checkDomainModuleDomain($domain_id) {
+        global $app;
+        
+        $sql = "SELECT domain_id, domain FROM domain WHERE domain_id = " . $app->functions->intval($domain_id);
+        if ($_SESSION["s"]["user"]["typ"] != 'admin') {
+            $groups = ( $_SESSION["s"]["user"]["groups"] ) ? $_SESSION["s"]["user"]["groups"] : 0;
+            $sql .= " AND sys_groupid IN (".$groups.")";
+        }
+        $domain = $app->db->queryOneRecord($sql);
+        if(!$domain || !$domain['domain_id']) return false;
+        return $domain['domain'];
+    }
 }
 
 ?>
diff --git a/interface/web/mail/mail_domain_edit.php b/interface/web/mail/mail_domain_edit.php
index e3cad68..d806f03 100644
--- a/interface/web/mail/mail_domain_edit.php
+++ b/interface/web/mail/mail_domain_edit.php
@@ -45,7 +45,7 @@
 $app->auth->check_module_permissions('mail');
 
 // Loading classes
-$app->uses('tpl,tform,tform_actions');
+$app->uses('tpl,tform,tform_actions,tools_sites');
 $app->load('tform_actions');
 
 class page_action extends tform_actions {
@@ -122,16 +122,7 @@
 			/*
 			 * The domain-module is in use.
 			*/
-			$client_group_id = $_SESSION["s"]["user"]["default_group"];
-			/*
-			 * The admin can select ALL domains, the user only the domains assigned to him
-			 */
-			$sql = "SELECT domain_id, domain FROM domain ";
-			if ($_SESSION["s"]["user"]["typ"] != 'admin') {
-				$sql .= "WHERE sys_groupid =" . $client_group_id;
-			}
-			$sql .= " ORDER BY domain";
-			$domains = $app->db->queryAllRecords($sql);
+			$domains = $app->tools_sites->getDomainModuleDomains();
 			$domain_select = '';
 			if(is_array($domains) && sizeof($domains) > 0) {
 				/* We have domains in the list, so create the drop-down-list */
@@ -189,18 +180,12 @@
 		$app->uses('ini_parser,getconf');
 		$settings = $app->getconf->get_global_config('domains');
 		if ($settings['use_domain_module'] == 'y') {
-			$client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]);
-			
-            $sql = "SELECT domain_id, domain FROM domain WHERE domain_id = " . $app->functions->intval($this->dataRecord['domain']);
-			if ($_SESSION["s"]["user"]["typ"] != 'admin') {
-				$sql .= " AND sys_groupid =" . $client_group_id;
-			}
-			$domain_check = $app->db->queryOneRecord($sql);
+            $domain_check = $app->tools_sites->checkDomainModuleDomain($this->dataRecord['domain']);
             if(!$domain_check) {
                 // invalid domain selected
                 $app->tform->errorMessage .= $app->tform->lng("domain_error_empty")."<br />";
             } else {
-                $this->dataRecord['domain'] = $domain_check['domain'];
+                $this->dataRecord['domain'] = $domain_check;
             }
         }
         
diff --git a/interface/web/sites/web_aliasdomain_edit.php b/interface/web/sites/web_aliasdomain_edit.php
index d3315eb..901cb35 100644
--- a/interface/web/sites/web_aliasdomain_edit.php
+++ b/interface/web/sites/web_aliasdomain_edit.php
@@ -45,7 +45,7 @@
 $app->auth->check_module_permissions('sites');
 
 // Loading classes
-$app->uses('tpl,tform,tform_actions');
+$app->uses('tpl,tform,tform_actions,tools_sites');
 $app->load('tform_actions');
 
 class page_action extends tform_actions {
@@ -81,16 +81,7 @@
 			/*
 			 * The domain-module is in use.
 			*/
-			$client_group_id = $_SESSION["s"]["user"]["default_group"];
-			/*
-			 * The admin can select ALL domains, the user only the domains assigned to him
-			 */
-			$sql = "SELECT domain_id, domain FROM domain ";
-			if ($_SESSION["s"]["user"]["typ"] != 'admin') {
-				$sql .= "WHERE sys_groupid =" . $client_group_id;
-			}
-			$sql .= " ORDER BY domain";
-			$domains = $app->db->queryAllRecords($sql);
+			$domains = $app->tools_sites->getDomainModuleDomains();
 			$domain_select = '';
 			if(is_array($domains) && sizeof($domains) > 0) {
 				/* We have domains in the list, so create the drop-down-list */
@@ -137,18 +128,12 @@
 		$app->uses('ini_parser,getconf');
 		$settings = $app->getconf->get_global_config('domains');
 		if ($settings['use_domain_module'] == 'y') {
-			$client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]);
-			
-            $sql = "SELECT domain_id, domain FROM domain WHERE domain_id = " . $app->functions->intval($this->dataRecord['domain']);
-			if ($_SESSION["s"]["user"]["typ"] != 'admin') {
-				$sql .= " AND sys_groupid =" . $client_group_id;
-			}
-			$domain_check = $app->db->queryOneRecord($sql);
+            $domain_check = $app->tools_sites->checkDomainModuleDomain($this->dataRecord['domain']);
             if(!$domain_check) {
                 // invalid domain selected
                 $app->tform->errorMessage .= $app->tform->lng("domain_error_empty")."<br />";
             } else {
-                $this->dataRecord['domain'] = $domain_check['domain'];
+                $this->dataRecord['domain'] = $domain_check;
             }
         }
         
diff --git a/interface/web/sites/web_domain_edit.php b/interface/web/sites/web_domain_edit.php
index 5cc7f5e..cf0df7f 100644
--- a/interface/web/sites/web_domain_edit.php
+++ b/interface/web/sites/web_domain_edit.php
@@ -45,7 +45,7 @@
 $app->auth->check_module_permissions('sites');
 
 // Loading classes
-$app->uses('tpl,tform,tform_actions');
+$app->uses('tpl,tform,tform_actions,tools_sites');
 $app->load('tform_actions');
 
 class page_action extends tform_actions {
@@ -425,16 +425,7 @@
 			/*
 			 * The domain-module is in use.
 			*/
-			$client_group_id = $_SESSION["s"]["user"]["default_group"];
-			/*
-			 * The admin can select ALL domains, the user only the domains assigned to him
-			 */
-			$sql = "SELECT domain_id, domain FROM domain ";
-			if ($_SESSION["s"]["user"]["typ"] != 'admin') {
-				$sql .= "WHERE sys_groupid =" . $client_group_id;
-			}
-			$sql .= " ORDER BY domain";
-			$domains = $app->db->queryAllRecords($sql);
+			$domains = $app->tools_sites->getDomainModuleDomains();
 			$domain_select = '';
 			if(is_array($domains) && sizeof($domains) > 0) {
 				/* We have domains in the list, so create the drop-down-list */
@@ -474,18 +465,12 @@
             $app->uses('ini_parser,getconf');
             $settings = $app->getconf->get_global_config('domains');
             if ($settings['use_domain_module'] == 'y') {
-                $client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]);
-                
-                $sql = "SELECT domain_id, domain FROM domain WHERE domain_id = " . $app->functions->intval($this->dataRecord['domain']);
-                if ($_SESSION["s"]["user"]["typ"] != 'admin') {
-                    $sql .= " AND sys_groupid =" . $client_group_id;
-                }
-                $domain_check = $app->db->queryOneRecord($sql);
+                $domain_check = $app->tools_sites->checkDomainModuleDomain($this->dataRecord['domain']);
                 if(!$domain_check) {
                     // invalid domain selected
                     $app->tform->errorMessage .= $app->tform->lng("domain_error_empty")."<br />";
                 } else {
-                    $this->dataRecord['domain'] = $domain_check['domain'];
+                    $this->dataRecord['domain'] = $domain_check;
                 }
             }
         }
diff --git a/interface/web/sites/web_subdomain_edit.php b/interface/web/sites/web_subdomain_edit.php
index 5fb990b..a424680 100644
--- a/interface/web/sites/web_subdomain_edit.php
+++ b/interface/web/sites/web_subdomain_edit.php
@@ -45,7 +45,7 @@
 $app->auth->check_module_permissions('sites');
 
 // Loading classes
-$app->uses('tpl,tform,tform_actions');
+$app->uses('tpl,tform,tform_actions,tools_sites');
 $app->load('tform_actions');
 
 class page_action extends tform_actions {
@@ -77,16 +77,7 @@
 			/*
 			 * The domain-module is in use.
 			*/
-			$client_group_id = $_SESSION["s"]["user"]["default_group"];
-			/*
-			 * The admin can select ALL domains, the user only the domains assigned to him
-			 */
-			$sql = "SELECT domain_id, domain FROM domain ";
-			if ($_SESSION["s"]["user"]["typ"] != 'admin') {
-				$sql .= "WHERE sys_groupid =" . $client_group_id;
-			}
-			$sql .= " ORDER BY domain";
-			$domains = $app->db->queryAllRecords($sql);
+			$domains = $app->tools_sites->getDomainModuleDomains();
 			$domain_select = '';
             $selected_domain = '';
 			if(is_array($domains) && sizeof($domains) > 0) {
@@ -147,11 +138,11 @@
 		$settings = $app->getconf->get_global_config('domains');
 		if ($settings['use_domain_module'] == 'y') {
             // get the record of the domain module domain
-            $domain = $app->db->queryOneRecord("SELECT * FROM domain WHERE domain_id = ".$app->functions->intval($this->dataRecord["sel_domain"]));
+            $domain = $app->tools_sites->checkDomainModuleDomain($this->dataRecord['sel_domain']);
             if(!$domain) {
                 $app->tform->errorMessage .= $app->tform->lng("domain_error_empty")."<br />";
             } else {
-                $this->dataRecord['domain'] = $this->dataRecord['domain'] . '.' . $domain['domain'];
+                $this->dataRecord['domain'] = $this->dataRecord['domain'] . '.' . $domain;
             }
         } else {
             $this->dataRecord["domain"] = $this->dataRecord["domain"].'.'.$parent_domain["domain"];
diff --git a/interface/web/sites/web_vhost_subdomain_edit.php b/interface/web/sites/web_vhost_subdomain_edit.php
index 6094baa..6ea122d 100644
--- a/interface/web/sites/web_vhost_subdomain_edit.php
+++ b/interface/web/sites/web_vhost_subdomain_edit.php
@@ -45,7 +45,7 @@
 $app->auth->check_module_permissions('sites');
 
 // Loading classes
-$app->uses('tpl,tform,tform_actions');
+$app->uses('tpl,tform,tform_actions,tools_sites');
 $app->load('tform_actions');
 
 class page_action extends tform_actions {
@@ -277,16 +277,7 @@
 			/*
 			 * The domain-module is in use.
 			*/
-			$client_group_id = $_SESSION["s"]["user"]["default_group"];
-			/*
-			 * The admin can select ALL domains, the user only the domains assigned to him
-			 */
-			$sql = "SELECT domain_id, domain FROM domain ";
-			if ($_SESSION["s"]["user"]["typ"] != 'admin') {
-				$sql .= "WHERE sys_groupid =" . $client_group_id;
-			}
-			$sql .= " ORDER BY domain";
-			$domains = $app->db->queryAllRecords($sql);
+            $domains = $app->tools_sites->getDomainModuleDomains();
 			$domain_select = '';
             $selected_domain = '';
 			if(is_array($domains) && sizeof($domains) > 0) {
@@ -350,18 +341,12 @@
             $app->uses('ini_parser,getconf');
             $settings = $app->getconf->get_global_config('domains');
             if ($settings['use_domain_module'] == 'y') {
-                $client_group_id = $app->functions->intval($_SESSION["s"]["user"]["default_group"]);
-                
-                $sql = "SELECT domain_id, domain FROM domain WHERE domain_id = " . $app->functions->intval($this->dataRecord['sel_domain']);
-                if ($_SESSION["s"]["user"]["typ"] != 'admin') {
-                    $sql .= " AND sys_groupid =" . $client_group_id;
-                }
-                $domain_check = $app->db->queryOneRecord($sql);
+                $domain_check = $app->tools_sites->checkDomainModuleDomain($this->dataRecord['sel_domain']);
                 if(!$domain_check) {
                     // invalid domain selected
                     $app->tform->errorMessage .= $app->tform->lng("domain_error_empty")."<br />";
                 } else {
-                    $this->dataRecord['domain'] = $this->dataRecord['domain'] . '.' . $domain_check['domain'];
+                    $this->dataRecord['domain'] = $this->dataRecord['domain'] . '.' . $domain_check;
                 }
             } else {
                 $this->dataRecord["domain"] = $this->dataRecord["domain"].'.'.$parent_domain["domain"];

--
Gitblit v1.9.1