/**
  * Gestion du type basic
  *
  * @param string $pString	la chaine à tester
  * @param CopixUser $pUser	l'utilisateur dont on teste les droits
  */
 private function _basic($pString, $pUser)
 {
     switch ($pString) {
         case 'admin':
             foreach ($pUser->getGroups() as $handler => $arGroupForHandler) {
                 if ($handler == 'auth|dbgrouphandler') {
                     $groupHandler = CopixGroupHandlerFactory::create($handler);
                     foreach ($arGroupForHandler as $id => $groupCaption) {
                         $informations = $groupHandler->getInformations($id);
                         if ($informations->superadmin_dbgroup) {
                             return true;
                         }
                     }
                 }
             }
             return false;
         case 'registered':
             return $pUser->isConnected();
     }
 }
 public function getGroups()
 {
     if (!empty($this->_groups) && CopixConfig::instance()->copixauth_cache == true) {
         return $this->_groups;
     }
     $results = array();
     //On parcours la liste des gestionnaires de groupes enregistrés.
     foreach (CopixConfig::instance()->copixauth_getRegisteredGroupHandlers() as $handlerDefinition) {
         $handler = CopixGroupHandlerFactory::create($handlerDefinition['name']);
         $arGroupHandler = array();
         //Pour chaque utilisateur testé lors du processus de login, on demande la liste de ses groupes
         foreach ($this->getResponses(true) as $logResult) {
             foreach ($handler->getUserGroups($logResult->getId(), $logResult->getHandler()) as $id => $group) {
                 $arGroupHandler[$id] = $group;
             }
         }
         //on rajoute également les groupes pour les "non authentifiés" (groupes anonymes par exemple)
         foreach (CopixConfig::instance()->copixauth_getRegisteredUserHandlers() as $userHandler => $userHandlerInformations) {
             foreach ($handler->getUserGroups(null, $userHandler) as $id => $group) {
                 $arGroupHandler[$id] = $group;
             }
         }
         if (count($arGroupHandler)) {
             $results[$handlerDefinition['name']] = $arGroupHandler;
         }
     }
     return $this->_groups = $results;
 }