Esempio n. 1
0
 /**
  * Exclude $targetUser from access groups given by $groupids by the $sourceUser.
  * 
  * @param Default_Model_Researcher|integer $sourceUser User profile object or id.
  * @param Default_Model_Researcher|integer $targetUser User profile object or id.
  * @param integer[] $groupIds The ids of the access groups.
  * @param {id, name, canAdd, canRemove, canRequest, canAcceptReject, hasRequest}[] $accesspermissions Optional array of $sourceUser's access groups permissions.
  * @return boolean|string True on success, text message on error, False on unknown error
  */
 private static function excludeUserInGroups($sourceUser, $targetUser, $groupIds, $accesspermissions)
 {
     $res = array();
     foreach ($groupIds as $gid) {
         $g = array($gid => self::canPerformAction($targetUser, $targetUser, "exclude", $gid, $accesspermissions));
         $res[] = $g;
         if ($g[$gid] !== true) {
             continue;
         }
         $actormembers = new Default_Model_ActorGroupMembers();
         $f1 = new Default_Model_ActorGroupMembersFilter();
         $f2 = new Default_Model_ActorGroupMembersFilter();
         $f3 = new Default_Model_ActorGroupMembersFilter();
         $f1->groupid->equals($gid);
         $f2->actorid->equals($targetUser->guid);
         $actormembers->filter->chain($f1, "AND");
         $actormembers->filter->chain($f2, "AND");
         if (trim($gid) === "-3") {
             $f3->payload->equals(trim($targetUser->countryID));
             $actormembers->filter->chain($f3, "AND");
         }
         if (count($actormembers->items) > 0) {
             $am = $actormembers->items[0];
             $actormembers->remove($am);
         }
     }
     return $res;
 }
Esempio n. 2
0
 public function getActorGroups()
 {
     if ($this->_actorGroups === null) {
         $ag = new Default_Model_ActorGroupMembers();
         $ag->filter->actorid = $this->getGUID();
         $ag->refresh();
         if (count($ag->items) > 0) {
             $this->_actorGroups = $ag->items;
         } else {
             $this->_actorGroups = array();
         }
     }
     return $this->_actorGroups;
 }