DataObjects/Core_notify_recur.php
[Pman.Core] / DataObjects / Person.php
index 9288d5d..ef4037e 100644 (file)
@@ -894,7 +894,7 @@ class Pman_Core_DataObjects_Person extends DB_DataObject
         if ($p->count()) {
             $p->autoJoin();
             $pids = $p->projects($au);
-            if (isset($q['query']['project_id'])) {
+            if (isset($q['query']['project_id'])) {   
                 $pid = (int)$q['query']['project_id'];
                 if (!in_array($pid, $pids)) {
                     $roo->jerr("Project not in users valid projects");
@@ -902,11 +902,11 @@ class Pman_Core_DataObjects_Person extends DB_DataObject
                 $pids = array($pid);
             }
             // project roles..
-            if (empty($q['_anyrole'])) {
-                $p->whereAdd("{$p->tableName()}.role != ''");
-            }
-            if (!empty($q['query']['role'])) {
-                $role = $this->escape($q['query']['role']);
+            //if (empty($q['_anyrole'])) {  // should be project_directry_role
+            //    $p->whereAdd("{$p->tableName()}.role != ''");
+            // }
+            if (!empty($q['query']['role'])) {  // should be project_directry_role
+                $role = $this->escape($q['query']['role']); 
                
                 $p->whereAdd("{$p->tableName()}.role LIKE '%{$role}%'");
                  
@@ -918,7 +918,27 @@ class Pman_Core_DataObjects_Person extends DB_DataObject
             }
         }    
         
-        
+        // fixme - this needs a more generic fix - it was from the mtrack_person code...
+        if (isset($q['query']['ticket_id'])) {  
+            // find out what state the ticket is in.
+            $t = DB_DataObject::Factory('mtrack_ticket');
+            $t->autoJoin();
+            $t->get($q['query']['ticket_id']);
+            
+            if (!$this->checkPerm('S', $au)) {
+                $roo->jerr("permssion denied to query state of ticket");
+            }
+            
+            $p = DB_DataObject::factory('ProjectDirectory');
+            $pids = array($t->project_id);
+           
+            $peps = $p->people($pids);
+            
+            $this->whereAddIn($this->tableName().'.id', $peps, 'int');
+            
+            //$this->whereAdd('join_prole != ''");
+            
+        }  
     }
     function setFromRoo($ar, $roo)
     {
@@ -989,7 +1009,7 @@ class Pman_Core_DataObjects_Person extends DB_DataObject
         // determine if it's staff!!!
         $owncomp = DB_DataObject::Factory('Companies');
         $owncomp->get('comptype', 'OWNER');
-        $isStaff = ($this->company_id ==  $owncomp->id);
+        $isStaff = ($au->company_id ==  $owncomp->id);
        
        
         if (!$isStaff) {