Project

General

Profile

SessionCookies < 16 » History » Revision 14

Revision 13 (Simon, 03/11/2012 10:27 PM) → Revision 14/15 (Simon, 03/11/2012 10:27 PM)

[[TOC]] 

 Les données relatives à l'authentification et aux données utilisateur sont stockées de deux manières selon que nous sommes sur l'interface publique ou sur l'interface d'administration. 


 h2. 

 == Interface publique 


 == 

 L'interface publique utilise les cookies. 


 h3. 

 === Quels sont les cookies disponibles? 


 === 

  * *id* '''id''' : identifiant de l'utilisateur 
 
  * *whois* '''whois''' : mot de passe crypté encodé en "base64":http://fr2.php.net/manual/en/function.base64-encode.php. 
 [http://fr2.php.net/manual/en/function.base64-encode.php base64]. 
  * *login* '''login''' : login de l'utilisateur 
 
  * *workshop* '''workshop''' : groupes auxquels l'utilisateur participe 
 
  * *lifetime* '''lifetime''' : date d'expiration des cookies 
 
  * *firstname* '''firstname''' : prénom de l'utilisateur (optionnel - seulement si renseigné) 



 h3. 


 === Comment utiliser les cookies ? 


 === 

 Ces cookies sont stockés dans le tableau PHP (_array_) (''array'') linea21 et sont, par conséquent, accessibles de cette manière : 


 <pre> 
 {{{ 
 <?php 
 echo $_COOKIE['linea21']['id']; 
 echo $_COOKIE['linea21']['whois']; 
 echo $_COOKIE['linea21']['login']; 
 echo $_COOKIE['linea21']['workshop']; 
 echo $_COOKIE['linea21']['lifetime']; 
 echo $_COOKIE['linea21']['firstname']; 
 ?> 
 </pre> 



 h3. }}} 


 === Quelques méthodes utiles 


 === 

  * *updateCookieWorkshop()* '''updateCookieWorkshop()''' permet de mettre à jour la liste des groupes de travail auxquels participe l'utilisateur authentifié.  
  
  * *isWorkgroupUser()* '''isWorkgroupUser()''' est utile pour déterminer si l'utilisateur participe ou non aux groupes de travail donné. La méthode prend en paramètre l'ID du groupe de travail concerné. Renvoie _true_ ''true'' si l'utilisateur appartient au groupe, sinon _false_. 
 ''false''. 
  * *DestroyUserCookie()* '''DestroyUserCookie()''' détruit l'ensemble des variables du cookie $_COOKIE['linea21'];  




 h2.  



 == Interface d'administration 


 == 

 L'interface d'administration utilise les sessions. 

 Les informations utilisateurs stockées sont les suivantes : 

 

  * *authenticated* '''authenticated''' : Prend la valeur true, indique que l'utilisateur est authentifié 
 
  * *userid* '''userid''' : stocke l'identifiant de l'utilisateur encodé en "base64":http://fr2.php.net/manual/en/function.base64-encode.php 
 [http://fr2.php.net/manual/en/function.base64-encode.php base64] 
  * *userwhois* '''userwhois''' : stocke le mot de passe crypté encodé en "base64":http://fr2.php.net/manual/en/function.base64-encode.php 
 [http://fr2.php.net/manual/en/function.base64-encode.php base64] 
  * *userlogin* '''userlogin''' : stocke le login de l'utilisateur authentifié 
 
  * *userright* '''userright''' : stocke le tableau de droits sur les différents modules pour l'utilisateur authentifié. Les modules accessibles sont : _dashboard_, _workshop_, _project_, _publication_, _news_, _yellowpages_, _theme_, _scale_, _level_, _category_user_. 



 h3. ''dashboard'', ''workshop'', ''project'', ''publication'', ''news'', ''yellowpages'', ''theme'', ''scale'', ''level'', ''category_user''. 


 === Comment utiliser les variables de session ? 


 === 

 Les variables de sessions sont accessibles par voie direct mais il est préférable d'utiliser la méthode [[GetSessionElement]]() GetSessionElement() en passant l'élément de session en argument : 

 <pre> 
 {{{ 
 <?php 
 echo $_SESSION['userid']; 
 // retournera l'identifiant de l'utilisateur encodé en base64 

 [[GetSessionElement]]('id'); GetSessionElement('id'); 
 // retournera l'identifiant au format brut 

 [[GetSessionElement]]('right_news'); GetSessionElement('right_news'); 
 // retournera les droits d'accès de l'utilisateur sur le module news 
 ?> 
 </pre> 


 h3. }}} 

 === Cookies 


 === 

 Sur l'interface d'administration, 4 cookies sont également utilisés pour améliorer le confort de l'utilisateur :  

  

  * *linea21_lastpage* '''linea21_lastpage''' : dernière page visitée 
 
  * *linea21_lastactivity* '''linea21_lastactivity''' : date et heure de la dernière activité 
 
  * *linea21_lastcon* '''linea21_lastcon''' : date et heure de la dernière connexion 
 
  * *linea21_lastuser* '''linea21_lastuser''' : dernier utilisateur connecté à l'application 


 h3. 

 === Quelques méthodes utiles 


 === 

  * *hasRight()* '''hasRight()''' : détermine si un utilisateur a les droits sur le module passé en argument 
 
  * *isWorkgroupOrganiser()* '''isWorkgroupOrganiser()''' : détermine si un utilisateur dispose des droits d*organisateur_ d'''organisateur'' sur un groupe de travail 
 
  * *IsSuperAdmin()* '''IsSuperAdmin()''' : retourne _true_ ''true'' si l'utilisateur est un administrateur 


 h2. 

 == Pour aller plus loin 


 == 

 Les méthodes d'authentification ainsi que les méthodes relatives aux sessions et aux cookies se situent dans le fichier "functions_auth.php":http://dev.linea21.com/trac/browser/linea21/trunk/v1/lib/functions_auth.php [http://dev.linea21.com/trac/browser/linea21/trunk/v1/lib/functions_auth.php functions_auth.php]