From 0a8f0e4ece06642808c1b52d7ea9c4af3ea356a1 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Mon, 22 Oct 2012 07:18:05 -0400
Subject: [PATCH] Fixed: FS#2362 - client_id from remoting.inc.php functions is ignored

---
 interface/lib/classes/remoting_lib.inc.php |   26 ++++++++++++--------------
 1 files changed, 12 insertions(+), 14 deletions(-)

diff --git a/interface/lib/classes/remoting_lib.inc.php b/interface/lib/classes/remoting_lib.inc.php
index 67ad855..47660f7 100644
--- a/interface/lib/classes/remoting_lib.inc.php
+++ b/interface/lib/classes/remoting_lib.inc.php
@@ -113,6 +113,7 @@
 		var $sys_userid;
 		var $sys_default_group;
 		var $sys_groups;
+		var $client_id;
 
 		
 		//* Load the form definition from file.
@@ -136,12 +137,12 @@
         }
 		
 		//* Load the user profile
-		function loadUserProfile($client_id = 0) {
+		function loadUserProfile($client_id_param = 0) {
 			global $app,$conf;
 
-			$client_id = $app->functions->intval($client_id);
+			$this->client_id = $app->functions->intval($client_id_param);
             
-			if($client_id == 0) {
+			if($this->client_id == 0) {
 				$this->sys_username         = 'admin';
 				$this->sys_userid            = 1;
 				$this->sys_default_group     = 1;
@@ -418,18 +419,10 @@
 							$returnval = strtoupper($field_value);
 						break;
 						case 'IDNTOASCII':
-							if(function_exists('idn_to_ascii')) {
-								$returnval = idn_to_ascii($field_value);
-							} else {
-								$returnval = $field_value;
-							}
+							$returnval = $app->functions->idn_encode($field_value);
 						break;
 						case 'IDNTOUTF8':
-							if(function_exists('idn_to_utf8')) {
-								$returnval = idn_to_utf8($field_value);
-							} else {
-								$returnval = $field_value;
-							}
+							$returnval = $app->functions->idn_decode($field_value);
 						break;
 						default:
 							$this->errorMessage .= "Unknown Filter: ".$filter['type'];
@@ -766,7 +759,12 @@
                         $sql = "INSERT INTO ".$escape.$this->formDef['db_table'].$escape." ($sql_insert_key) VALUES ($sql_insert_val)";
                 } else {
                         if($primary_id != 0) {
-                                $sql_update = substr($sql_update,0,-2);
+                                // update client permissions only if client_id > 0
+								if($this->formDef['auth'] == 'yes' && $this->client_id > 0) {
+									$sql_update .= '`sys_userid` = '.$this->sys_userid.', ';
+									$sql_update .= '`sys_groupid` = '.$this->sys_default_group.', ';
+								}
+								$sql_update = substr($sql_update,0,-2);
                                 $sql = "UPDATE ".$escape.$this->formDef['db_table'].$escape." SET ".$sql_update." WHERE ".$this->formDef['db_table_idx']." = ".$primary_id;
                                 if($sql_ext_where != '') $sql .= " and ".$sql_ext_where;
                         } else {

--
Gitblit v1.9.1