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]