From 3f1edadba1daa60d7521b7dfaf26a4f1e573ae2a Mon Sep 17 00:00:00 2001
From: Peter Rotich <peter@osticket.com>
Date: Sat, 31 Mar 2012 21:21:41 -0400
Subject: [PATCH] Add client lookup by email

---
 include/class.client.php      | 21 ++++++++++++++++++---
 include/class.usersession.php |  4 ++--
 2 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/include/class.client.php b/include/class.client.php
index e1057afa6..8786c0e19 100644
--- a/include/class.client.php
+++ b/include/class.client.php
@@ -30,12 +30,12 @@ class Client {
     var $ht;
 
 
-    function Client($email,$id) {
+    function Client($id, $email=null) {
         $this->id =0;
         $this->load($id,$email);
     }
 
-    function load($id=0, $email='') {
+    function load($id=0, $email=null) {
 
         if(!$id && !($id=$this->getId()))
             return false;
@@ -115,8 +115,23 @@ class Client {
     }
 
     /* ------------- Static ---------------*/
-    function lookup($id, $email) {
+    function getLastTicketIdByEmail($email) {
+        $sql='SELECT ticketID FROM '.TICKET_TABLE
+            .' WHERE email='.db_input($email)
+            .' ORDER BY created '
+            .' LIMIT 1';
+        if(($res=db_query($sql)) && db_num_rows($res))
+            list($tid) = db_fetch_row($res);
+
+        return $tid;
+    }
+
+    function lookup($id, $email=null) {
         return ($id && is_numeric($id) && ($c=new Client($id,$email)) && $c->getId()==$id)?$c:null;
     }
+
+    function lookupByEmail($email) {
+        return (($id=self::getLastTicketIdByEmail($email)))?self::lookup($id, $email):null;
+    }
 }
 ?>
diff --git a/include/class.usersession.php b/include/class.usersession.php
index 9a8283e37..c12f3a0d8 100644
--- a/include/class.usersession.php
+++ b/include/class.usersession.php
@@ -107,8 +107,8 @@ class ClientSession extends Client {
     
     var $session;
 
-    function ClientSession($email,$id){
-        parent::Client($email,$id);
+    function ClientSession($email, $id){
+        parent::Client($id, $email);
         $this->session= new UserSession($email);
     }
 
-- 
GitLab