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);
 }