From 0a957fb45dc1fe452ed5d0b0aa25489e39a69162 Mon Sep 17 00:00:00 2001
From: mcramer <m.cramer@pixcept.de>
Date: Fri, 09 Aug 2013 08:23:57 -0400
Subject: [PATCH] - Fixed missing reset of template_additional column after converting to new style

---
 interface/lib/classes/remoting.inc.php |   90 ++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 88 insertions(+), 2 deletions(-)

diff --git a/interface/lib/classes/remoting.inc.php b/interface/lib/classes/remoting.inc.php
index ed7c3ed..1668004 100644
--- a/interface/lib/classes/remoting.inc.php
+++ b/interface/lib/classes/remoting.inc.php
@@ -1176,7 +1176,93 @@
 			
 			return $affected_rows;
 	}
+    
+    public function client_template_additional_get($session_id, $client_id) {
+        global $app;
 
+		if(!$this->checkPerm($session_id, 'client_get')) {
+			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			return false;
+		}
+        
+        if(@is_numeric($client_id)) {
+            $sql = "SELECT * FROM `client_template_assigned` WHERE `client_id` = ".$client_id;
+            return $app->db->queryOneRecord($sql);
+        } else {
+            $this->server->fault('The ID must be an integer.');
+            return array();
+        }
+    }
+    
+    public function client_template_additional_add($session_id, $client_id, $template_id) {
+        global $app;
+        
+		if(!$this->checkPerm($session_id, 'client_update')) {
+			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			return false;
+		}
+        
+        if(@is_numeric($client_id) && @is_numeric($template_id)) {
+            // check if client exists
+            $check = $app->db->queryOneRecord('SELECT `client_id` FROM `client` WHERE `client_id` = ' . $client_id);
+            if(!$check) {
+                $this->server->fault('Invalid client');
+                return false;
+            }
+            // check if template exists
+            $check = $app->db->queryOneRecord('SELECT `template_id` FROM `client_template` WHERE `template_id` = ' . $template_id);
+            if(!$check) {
+                $this->server->fault('Invalid template');
+                return false;
+            }
+            
+            $sql = "INSERT INTO `client_template_assigned` (`client_id`, `client_template_id`) VALUES (" . $client_id . ", " . $template_id . ")";
+            $app->db->query($sql);
+            $insert_id = $app->db->insertID();
+            
+            $app->plugin->raiseEvent('client:client:on_after_update',$this);
+            
+            return $insert_id;
+        } else {
+            $this->server->fault('The IDs must be of type integer.');
+            return false;
+        }
+    }
+
+    public function client_template_additional_delete($session_id, $client_id, $assigned_template_id) {
+        global $app;
+        
+		if(!$this->checkPerm($session_id, 'client_update')) {
+			$this->server->fault('permission_denied', 'You do not have the permissions to access this function.');
+			return false;
+		}
+        
+        if(@is_numeric($client_id) && @is_numeric($template_id)) {
+            // check if client exists
+            $check = $app->db->queryOneRecord('SELECT `client_id` FROM `client` WHERE `client_id` = ' . $client_id);
+            if(!$check) {
+                $this->server->fault('Invalid client');
+                return false;
+            }
+            // check if template exists
+            $check = $app->db->queryOneRecord('SELECT `assigned_template_id` FROM `client_template_assigned` WHERE `assigned_template_id` = ' . $assigned_template_id);
+            if(!$check) {
+                $this->server->fault('Invalid template');
+                return false;
+            }
+            
+            $sql = "DELETE FROM `client_template_assigned` WHERE `assigned_template_id` = " . $template_id . " AND `client_id` = " . $client_id;
+            $app->db->query($sql);
+            $affected_rows = $app->db->affectedRows();
+            
+            $app->plugin->raiseEvent('client:client:on_after_update',$this);
+            
+            return $affected_rows;
+        } else {
+            $this->server->fault('The IDs must be of type integer.');
+            return false;
+        }
+    }
 
 	public function client_delete($session_id,$client_id)
 	{
@@ -2137,12 +2223,12 @@
             return false;
         }
         
-        if (preg_match('/^[a-z0-9][a-z0-9\-]+[a-z0-9](\.[a-z]{2,4})+$/i', $origin)) {
+        if(!preg_match('/^[a-z0-9][a-z0-9\-]+[a-z0-9](\.[a-z]{2,4})+$/i', $origin)){
             $this->server->fault('no_domain_found', 'Invalid domain name.');
             return false;
         }
 
-        $rec = $app->db->queryOneRecord("SELECT id FROM dns_soa WHERE origin like '".$origin.'%');
+        $rec = $app->db->queryOneRecord("SELECT id FROM dns_soa WHERE origin like '".$origin."%'");
         if(isset($rec['id'])) {
             return $app->functions->intval($rec['id']);
         } else {

--
Gitblit v1.9.1