protected function _isMemberOfIdps(EngineBlock_VirtualOrganization $virtualOrganization, $idp) { $idpIdentifiers = $virtualOrganization->getIdpIdentifiers(); foreach ($idpIdentifiers as $idpId) { if ($idpId === $idp) { return true; } } return false; }
/** * @param string $identifier * @param null|string $groupId * @param null|string $voId * @return array OpenSocial groups */ public function getGroupsForPerson($identifier, $groupId = null, $voId = null, $spEntityId = null) { $identifier = $this->_getCollabPersonIdForPersistentId($identifier); if (!$identifier) { 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; } $engineBlockGroups = NULL; $groupProvider = $this->_getGroupProvider($identifier); if ($voId) { $virtualOrganization = new EngineBlock_VirtualOrganization($voId); $groupStem = $virtualOrganization->getStem(); $engineBlockGroups = $groupProvider->getGroupsByStem($groupStem, $spGroupAcls); } else { $engineBlockGroups = $groupProvider->getGroups($spGroupAcls); } $openSocialGroups = array(); foreach ($engineBlockGroups as $group) { $openSocialGroup = $this->_mapEngineBlockGroupToOpenSocialGroup($group); if ($groupId && $openSocialGroup['id'] !== $groupId) { continue; } $openSocialGroups[] = $openSocialGroup; } return $openSocialGroups; }
protected function _isMemberOfStem(EngineBlock_VirtualOrganization $virtualOrganization, $subjectId) { return $this->_getGroupProvider($subjectId)->setGroupStem($virtualOrganization->getStem())->isMember(self::STEM_VO_MEMBERS_GROUP); }