Changeset 739

Show
Ignore:
Timestamp:
01/17/08 09:40:52 (10 months ago)
Author:
gcroes
Message:

On appèle maintenant getUserGroups pour tous les gestionnaires d'utilisateurs enregistrés, qu'ils aient subit une tentative de connexion ou non.

Correction de dbGroupHandler pour prendre en charge le cas ou on appèle $pUserId avec null (utilisateur annonyme)

Prise en charge du paramètre "copixauth_cache" dans la fonction getGroups.

close #92

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/project/modules/public/stable/standard/auth/classes/dbgrouphandler.class.php

    r602 r739  
    1919     * Récupération des groupes pour un identifiant d'utilisateur donné 
    2020     * 
    21      * @param   string  $pUserId    l'identifiant de l'utilisateur 
     21     * @param   string  $pUserId    l'identifiant de l'utilisateur, null si on test pour un utilisateur non connecté 
    2222     * @return array of groups 
    2323     */ 
     
    2525        if ($pUserId !== null){ 
    2626            $registered = ' or g.registered_dbgroup=1  '; 
     27        }else{ 
     28            $registered = ''; 
    2729        } 
     30 
    2831        $arGroup = array (); 
    2932        foreach (CopixDB::getConnection ()->doQuery ('select g.id_dbgroup, g.caption_dbgroup from dbgroup g, dbgroup_users gu where ((g.public_dbgroup=1  
  • trunk/utils/copix/auth/CopixUser.class.php

    r720 r739  
    9595     */ 
    9696    public function getGroups () { 
    97         if ($this->_groups !== false) { 
     97        if ($this->_groups !== false && (CopixConfig::instance ()->copixauth_cache == true)) { 
    9898            return $this->_groups; 
    9999        } 
    100100        $results = array (); 
     101 
     102        //On parcours la liste des gestionnairs de groupes enregistrés. 
    101103        foreach (CopixConfig::instance ()->copixauth_getRegisteredGroupHandlers () as $handler) { 
    102104            $arGroupHandler = array (); 
     105            //Pour chaque utilisateur testé lors du processus de login, on demande la liste de ses groupes   
    103106            foreach ($this->_logged as $userHandler=>$logResult) { 
    104107                if ($logResult->getResult ()) { 
     
    108111                } 
    109112            } 
     113            //on rajoute également les groupes pour les "non authentifiés" (groupes anonymes par exemple) 
     114            foreach (CopixConfig::instance ()->copixauth_getRegisteredUserHandlers () as $userHandler=>$userHandlerInformations){ 
     115                foreach (CopixGroupHandlerFactory::create ($handler['name'])->getUserGroups (null, $userHandler)  as $id => $group){ 
     116                    $arGroupHandler[$id] = $group; 
     117                }  
     118            } 
     119 
    110120            if (count ($arGroupHandler)) { 
    111121                $results[$handler['name']] = $arGroupHandler;