/** * @param $groupMemberUid * @param $groupId * @param array $socialAttributes * @param null $voId * @param null $spEntityId * @return array */ public function getGroupMembers($groupMemberUid, $groupId, $socialAttributes = array(), $voId = null, $spEntityId = null) { $groupMemberUid = $this->_getCollabPersonIdForPersistentId($groupMemberUid); if (!$groupMemberUid) { return false; } if (!$spEntityId) { // Without spEntityId we can't check if we are allowed to return Groups return false; } $spGroupAcls = $this->_getSpGroupAcls($spEntityId); if (!$spGroupAcls) { //no GroupAcl means by definition that there are no positive permissions return false; } $groupMembers = $this->_getGroupProvider($groupMemberUid)->getMembers($groupId, $spGroupAcls); $people = array(); /** * @var EngineBlock_Group_Model_GroupMember $groupMember */ $externalGroup = EngineBlock_Group_Provider_Abstract::isExternalGroup($groupId); foreach ($groupMembers as $groupMember) { if ($externalGroup) { $people[] = $this->_mapEngineBlockGroupMemberToOpenSocialGroupMember($groupMember); } else { $person = $this->getPerson($groupMember->id, $socialAttributes, $voId, $spEntityId); if (!$person) { $people[] = $this->_mapEngineBlockGroupMemberToOpenSocialGroupMember($groupMember); } else { $person['voot_membership_role'] = $groupMember->userRole; $people[] = $person; } } } return $people; }