DataObjects/Core_group_member.php
[Pman.Core] / DataObjects / Core_group_member.php
index 8b33dbc..bde8d37 100755 (executable)
@@ -2,7 +2,7 @@
 /**
  * Table Definition for Group_Members
  */
-require_once 'DB/DataObject.php';
+class_exists('DB_DataObject') ? '' : require_once 'DB/DataObject.php';
 
 class Pman_Core_DataObjects_Core_group_member extends DB_DataObject 
 {
@@ -56,7 +56,7 @@ class Pman_Core_DataObjects_Core_group_member extends DB_DataObject
         $t = clone($this);
         //DB_DataObject::debugLevel(1);
          
-        $grp = DB_DataObject::factory('Groups');
+        $grp = DB_DataObject::factory('core_group');
         $t->joinAdd($grp , 'LEFT');
         //$person->id = (int)$person->id;
         $t->whereAdd("
@@ -85,10 +85,54 @@ class Pman_Core_DataObjects_Core_group_member extends DB_DataObject
         return $ret;
         
     }
+    
     function checkPerm($lvl, $au) 
     {
         return false;
     }
     
+    function beforeInsert($q, $roo)
+    {
+        if(!empty($q['_persons']) && !empty($q['group_id'])){
+            $this->bulkAddToGroup($q, $roo);
+        }
+    }
+    
+    function bulkAddToGroup($q, $roo)
+    {
+        $core_group = DB_DataObject::factory('core_group');
+        
+        if(!$core_group->get($q['group_id'])){
+            $roo->jerr('Invalid URL');
+        }
+        
+        $persons = array_unique(array_filter(explode(',', $q['_persons'])));
+        
+        foreach ($persons as $p){
+            
+            $core_person = DB_DataObject::factory('core_person');
+            
+            if(!$core_person->get($p)){
+                continue;
+            }
+            
+            $core_group_member = DB_DataObject::factory('core_group_member');
+            $core_group_member->setFrom(array(
+                'group_id' => $core_group->id,
+                'user_id' => $core_person->id
+            ));
+            
+            if($core_group_member->find(true)){
+                continue;
+            }
+            
+            $core_group_member->insert();
+            
+        }
+        
+        $roo->jok('OK');
+        
+    }
+    
    
 }