DataObjects/Core_group_member.php
[Pman.Core] / DataObjects / Core_groups.php
index cc6649e..1343436 100644 (file)
@@ -14,7 +14,7 @@
  */
 require_once 'DB/DataObject.php';
 
-class Pman_Core_DataObjects_Groups extends DB_DataObject 
+class Pman_Core_DataObjects_Core_groups extends DB_DataObject 
 {
     ###START_AUTOCODE
     /* the code below is auto generated do not remove the above tag */
@@ -24,12 +24,35 @@ class Pman_Core_DataObjects_Groups extends DB_DataObject
     public $name;                            // string(64)  not_null
     public $type;                            // int(11)  
     public $leader;                          // int(11)  not_null
-
+    public $is_system;                       // used by timesheets?
     
     /* the code above is auto generated do not remove the tag below */
     ###END_AUTOCODE
     
+    
+    function memberTable()
+    {
+        return 'core_group_members';
+    }
+    function rightsTable()
+    {
+        return 'core_group_rights';
+    }
+    function personTable()
+    {
+        $ff = HTML_FlexyFramework::get();
+        return empty($ff->Pman['authTable']) ? 'Person' : $ff->Pman['authTable'];
+    }
+    
+    
     // group types??
+    function applyFilters($q, $au, $roo)
+    {
+        if (!empty($q['query']['name_starts'])) {
+            $v = $this->escape($q['query']['name_starts']);
+            $this->whereAdd("{$this->tableName()}.name like '{$v}%'");
+        }
+    }
     
     function toEventString() {
         return $this->name;
@@ -38,8 +61,8 @@ class Pman_Core_DataObjects_Groups extends DB_DataObject
     function beforeDelete()
     {
         $x = DB_DataObject::factory($this->tableName());
-        $x->query("DELETE FROM group_rights WHERE group_id = {$this->id}");
-        $x->query("DELETE FROM group_members WHERE group_id = {$this->id}");
+        $x->query("DELETE FROM {$this->rightsTable()} WHERE group_id = {$this->id}");
+        $x->query("DELETE FROM {$this->membersTable()} WHERE group_id = {$this->id}");
     }
     /**
      * check who is trying to access this. false == access denied..
@@ -65,10 +88,10 @@ class Pman_Core_DataObjects_Groups extends DB_DataObject
             return true;
         }
         
-        $pi = DB_DataObject::factory(empty($ff->Pman['authTable']) ? 'Person' : $ff->Pman['authTable']);
+        $pi = DB_DataObject::factory($this->personTable());
         $pi->get($this->leader);
             
-        $p = DB_DataObject::factory('group_members');
+        $p = DB_DataObject::factory($this->membersTable());
         $p->group_id = $this->id;
         $p->user_id = $this->leader;
         //$p->type = 1; //???????
@@ -80,9 +103,17 @@ class Pman_Core_DataObjects_Groups extends DB_DataObject
              
     }
     
+    
+    function memberCount()
+    {
+        $gm = DB_Dataobject::factory($this->membersTable());
+        $gm->group_id = $this->id;
+        return $gm->count();
+    }
+    
     function memberIds()
     {
-        $gm = DB_Dataobject::factory('group_members');
+        $gm = DB_Dataobject::factory($this->membersTable());
         $gm->group_id = $this->id;
         return $gm->fetchAll('user_id');
         
@@ -91,7 +122,7 @@ class Pman_Core_DataObjects_Groups extends DB_DataObject
     
     function addMember($person)
     {
-        $gm = DB_Dataobject::factory('group_members');
+        $gm = DB_Dataobject::factory($this->membersTable());
         $gm->group_id = $this->id;
         $gm->user_id = $person->id;
         if (!$gm->count()) {
@@ -121,6 +152,9 @@ class Pman_Core_DataObjects_Groups extends DB_DataObject
         return $p->fetchAll($what);
     }
     
+    
+    
+    
     function lookup($k,$v = false) {
         if ($v === false) {
             $v = $k;
@@ -171,7 +205,7 @@ class Pman_Core_DataObjects_Groups extends DB_DataObject
             return;
         }
         $g->insert();
-        $gr = DB_DataObject::factory('group_rights');
+        $gr = DB_DataObject::factory($this->rightsTable());
         $gr->genDefault();
     }