From ecf891ab69b38ee1bcd0533d9a4f30d218c7e99c Mon Sep 17 00:00:00 2001
From: nveid <nveid@ispconfig3>
Date: Mon, 21 Nov 2011 06:04:18 +0000
Subject: [PATCH] Added remoting API call: client_get_all   @param  ->
 session_id   @return -> Array of all Client IDs on server

---
 interface/lib/classes/remoting.inc.php   | 29 ++++++++++++++++++++++--
 interface/web/client/lib/remote.conf.php |  4 ++--
 2 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/interface/lib/classes/remoting.inc.php b/interface/lib/classes/remoting.inc.php
index c3e0697c24..8d043a430a 100644
--- a/interface/lib/classes/remoting.inc.php
+++ b/interface/lib/classes/remoting.inc.php
@@ -2325,6 +2325,7 @@ class remoting {
 	
 	protected function checkPerm($session_id, $function_name)
     {
+        global $app;
 	$dobre=array();
 	$session = $this->getSession($session_id);
         if(!$session){
@@ -2332,7 +2333,11 @@ class remoting {
         }
 		
 		$dobre= str_replace(';',',',$session['remote_functions']);
-		return in_array($function_name, explode(',', $dobre) );
+		$check = in_array($function_name, explode(',', $dobre) );
+		if(!$check) {
+		  $app->log("REMOTE-LIB DENY: ".$session_id ." /". $function_name, LOGLEVEL_WARN);
+		}
+		return $check;
 	}
 	
 	
@@ -2445,6 +2450,26 @@ class remoting {
 			return false;
         }
     }
+      /**
+       * Get All client_id's from database
+       * @param int	session_id
+       * @return Array of all client_id's
+       */
+	public function client_get_all($session_id) {
+	  global $app;
+	  if(!$this->checkPerm($session_id, 'client_get_all')) {
+	    $this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+	    return false;
+	  }
+	  $result = $app->db->queryAllRecords("SELECT client_id FROM client WHERE 1");
+	  if(!$result) {
+	    return false;
+	  }
+	  foreach( $result as $record) {
+	    $rarrary[] = $record['client_id'];
+	  }
+	  return $rarrary;
+	}
 
     /**
      * Changes client password
@@ -2954,4 +2979,4 @@ class remoting {
 	
 	
 }
-?>
\ No newline at end of file
+?>
diff --git a/interface/web/client/lib/remote.conf.php b/interface/web/client/lib/remote.conf.php
index 65b7b251f0..fd0c07ae02 100644
--- a/interface/web/client/lib/remote.conf.php
+++ b/interface/web/client/lib/remote.conf.php
@@ -1,5 +1,5 @@
 <?php
 
-$function_list['client_get,client_add,client_update,client_delete,client_get_sites_by_user,client_get_by_username,client_change_password,client_get_id,client_delete_everything'] = 'Client functions';
+$function_list['client_get_all,client_get,client_add,client_update,client_delete,client_get_sites_by_user,client_get_by_username,client_change_password,client_get_id,client_delete_everything'] = 'Client functions';
 
-?>
\ No newline at end of file
+?>
-- 
GitLab