From 11b3daff80a65d0d0b0dabf3ef99aa0c7018f76b Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Tue, 11 Aug 2009 09:59:25 -0400
Subject: [PATCH] Fixed: FS#822 - Main tabs at top not applying translations.

---
 interface/lib/classes/tform.inc.php |   51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 51 insertions(+), 0 deletions(-)

diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php
index ec37de2..04104de 100644
--- a/interface/lib/classes/tform.inc.php
+++ b/interface/lib/classes/tform.inc.php
@@ -276,6 +276,33 @@
 				}
 			}
 			
+			//* values are limited to a field in the reseller settings
+			if($limit_parts[0] == 'reseller') {
+				if($_SESSION["s"]["user"]["typ"] == 'admin') {
+					return $values;
+				} else {
+					//* Get the limits of the client that is currently logged in
+					$client_group_id = $_SESSION["s"]["user"]["default_group"];
+					$client = $app->db->queryOneRecord("SELECT parent_client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id");
+					//echo "SELECT parent_client_id FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = $client_group_id";
+					//* If the client belongs to a reseller, we will check against the reseller Limit too
+					if($client['parent_client_id'] != 0) {
+				
+						//* first we need to know the groups of this reseller
+						$tmp = $app->db->queryOneRecord("SELECT userid, groups FROM sys_user WHERE client_id = ".$client['parent_client_id']);
+						$reseller_groups = $tmp["groups"];
+						$reseller_userid = $tmp["userid"];
+				
+						// Get the limits of the reseller of the logged in client
+						$client_group_id = $_SESSION["s"]["user"]["default_group"];
+						$reseller = $app->db->queryOneRecord("SELECT ".$limit_parts[1]." as lm FROM client WHERE client_id = ".$client['parent_client_id']);
+						$allowed = explode(',',$reseller['lm']);
+					} else {
+						return $values;
+					}
+				} // end if admin
+			} // end if reseller
+			
 			//* values are limited to a field in the system settings
 			if($limit_parts[0] == 'system') {
 				$app->uses('getconf');
@@ -1205,6 +1232,30 @@
 			
 			return $check_passed;
 		}
+		
+		//* get the difference record of two arrays
+		function getDiffRecord($record_old,$record_new) {
+			
+			if(is_array($record_new) && count($record_new) > 0) {
+			foreach($record_new as $key => $val) {
+				if(@$record_old[$key] != $val) {
+					// Record has changed
+					$diffrec[$key] = array(	'old' => @$record_old[$key],
+											'new' => $val);
+					}
+				}
+			} elseif(is_array($record_old)) {
+				foreach($record_old as $key => $val) {
+					if($record_new[$key] != $val) {
+						// Record has changed
+						$diffrec[$key] = array(	'new' => $record_new[$key],
+												'old' => $val);
+						}
+					}
+				}
+			return $diffrec;
+		
+		}
 
 }
 

--
Gitblit v1.9.1