public function getExtrasearchconds($search, $cond)
 {
     $baseset = $this->get($cond);
     $extracond = array();
     foreach ($baseset as $row) {
         if (stripos($row->getRequester(), $search) !== false) {
             $extracond[] = array('AND' => array(array('requesterid' => array('mode' => '=', 'value' => $row->getRequesterid())), array('requestertype' => array('mode' => '=', 'value' => $row->getRequestertype()))));
         } elseif (stripos($row->getObject(), $search) !== false) {
             $extracond[] = array('AND' => array(array('objectid' => array('mode' => '=', 'value' => $row->getObjectid())), array('objecttype' => array('mode' => '=', 'value' => $row->getObjecttype()))));
         }
     }
     $parent = parent::getExtrasearchconds($search, $cond);
     if (count($parent) > 0) {
         $extracond = array_merge($parent, $extracond);
     }
     return $extracond;
 }
Example #2
0
 public static function delAcl($requester, $object, $right)
 {
     $model = new myaclModel();
     $requestertype = get_class($requester);
     $objecttype = get_class($object);
     $requesterid = $requester->getId();
     $objectid = $object->getId();
     $cond = array('AND' => array(array('requestertype' => array('mode' => '=', 'value' => $requestertype)), array('requesterid' => array('mode' => '=', 'value' => $requesterid)), array('objecttype' => array('mode' => '=', 'value' => $objecttype)), array('objectid' => array('mode' => '=', 'value' => $objectid)), array('right' => array('mode' => '=', 'value' => $right))));
     try {
         $model->delete($cond);
     } catch (Exception $e) {
         throw new Exception('Could not delete ACL: ' . $e->getMessage());
     }
 }