SessionCookies < 16 » History » Version 15
Simon, 05/02/2012 12:55 PM
| 1 | 15 | Simon | {{>toc}} |
|---|---|---|---|
| 2 | 8 | Simon | |
| 3 | 11 | Simon | 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. |
| 4 | 1 | Simon | |
| 5 | |||
| 6 | 14 | Simon | h2. Interface publique |
| 7 | |||
| 8 | |||
| 9 | 1 | Simon | L'interface publique utilise les cookies. |
| 10 | |||
| 11 | |||
| 12 | 14 | Simon | h3. Quels sont les cookies disponibles? |
| 13 | 1 | Simon | |
| 14 | |||
| 15 | 14 | Simon | * *id* : identifiant de l'utilisateur |
| 16 | * *whois* : mot de passe crypté encodé en "base64":http://fr2.php.net/manual/en/function.base64-encode.php. |
||
| 17 | * *login* : login de l'utilisateur |
||
| 18 | * *workshop* : groupes auxquels l'utilisateur participe |
||
| 19 | * *lifetime* : date d'expiration des cookies |
||
| 20 | * *firstname* : prénom de l'utilisateur (optionnel - seulement si renseigné) |
||
| 21 | 1 | Simon | |
| 22 | |||
| 23 | 2 | Simon | |
| 24 | 14 | Simon | h3. Comment utiliser les cookies ? |
| 25 | |||
| 26 | |||
| 27 | Ces cookies sont stockés dans le tableau PHP (_array_) linea21 et sont, par conséquent, accessibles de cette manière : |
||
| 28 | |||
| 29 | |||
| 30 | <pre> |
||
| 31 | 1 | Simon | <?php |
| 32 | echo $_COOKIE['linea21']['id']; |
||
| 33 | echo $_COOKIE['linea21']['whois']; |
||
| 34 | echo $_COOKIE['linea21']['login']; |
||
| 35 | echo $_COOKIE['linea21']['workshop']; |
||
| 36 | echo $_COOKIE['linea21']['lifetime']; |
||
| 37 | echo $_COOKIE['linea21']['firstname']; |
||
| 38 | ?> |
||
| 39 | 14 | Simon | </pre> |
| 40 | 1 | Simon | |
| 41 | |||
| 42 | |||
| 43 | 14 | Simon | h3. Quelques méthodes utiles |
| 44 | 1 | Simon | |
| 45 | |||
| 46 | 14 | Simon | * *updateCookieWorkshop()* permet de mettre à jour la liste des groupes de travail auxquels participe l'utilisateur authentifié. |
| 47 | * *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_ si l'utilisateur appartient au groupe, sinon _false_. |
||
| 48 | * *DestroyUserCookie()* détruit l'ensemble des variables du cookie $_COOKIE['linea21']; |
||
| 49 | 3 | Simon | |
| 50 | |||
| 51 | 14 | Simon | |
| 52 | |||
| 53 | h2. Interface d'administration |
||
| 54 | |||
| 55 | |||
| 56 | 1 | Simon | L'interface d'administration utilise les sessions. |
| 57 | |||
| 58 | Les informations utilisateurs stockées sont les suivantes : |
||
| 59 | |||
| 60 | 14 | Simon | * *authenticated* : Prend la valeur true, indique que l'utilisateur est authentifié |
| 61 | * *userid* : stocke l'identifiant de l'utilisateur encodé en "base64":http://fr2.php.net/manual/en/function.base64-encode.php |
||
| 62 | * *userwhois* : stocke le mot de passe crypté encodé en "base64":http://fr2.php.net/manual/en/function.base64-encode.php |
||
| 63 | * *userlogin* : stocke le login de l'utilisateur authentifié |
||
| 64 | * *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_. |
||
| 65 | 1 | Simon | |
| 66 | |||
| 67 | |||
| 68 | 14 | Simon | h3. Comment utiliser les variables de session ? |
| 69 | 1 | Simon | |
| 70 | 14 | Simon | |
| 71 | Les variables de sessions sont accessibles par voie direct mais il est préférable d'utiliser la méthode [[GetSessionElement]]() en passant l'élément de session en argument : |
||
| 72 | |||
| 73 | <pre> |
||
| 74 | 1 | Simon | <?php |
| 75 | 12 | Simon | echo $_SESSION['userid']; |
| 76 | 5 | Simon | // retournera l'identifiant de l'utilisateur encodé en base64 |
| 77 | |||
| 78 | 14 | Simon | [[GetSessionElement]]('id'); |
| 79 | 5 | Simon | // retournera l'identifiant au format brut |
| 80 | |||
| 81 | 14 | Simon | [[GetSessionElement]]('right_news'); |
| 82 | 5 | Simon | // retournera les droits d'accès de l'utilisateur sur le module news |
| 83 | 3 | Simon | ?> |
| 84 | 14 | Simon | </pre> |
| 85 | 5 | Simon | |
| 86 | 9 | Simon | |
| 87 | 14 | Simon | h3. Cookies |
| 88 | |||
| 89 | |||
| 90 | 7 | Simon | Sur l'interface d'administration, 4 cookies sont également utilisés pour améliorer le confort de l'utilisateur : |
| 91 | |||
| 92 | 14 | Simon | * *linea21_lastpage* : dernière page visitée |
| 93 | * *linea21_lastactivity* : date et heure de la dernière activité |
||
| 94 | * *linea21_lastcon* : date et heure de la dernière connexion |
||
| 95 | * *linea21_lastuser* : dernier utilisateur connecté à l'application |
||
| 96 | 5 | Simon | |
| 97 | 1 | Simon | |
| 98 | 14 | Simon | h3. Quelques méthodes utiles |
| 99 | 7 | Simon | |
| 100 | 6 | Simon | |
| 101 | 14 | Simon | * *hasRight()* : détermine si un utilisateur a les droits sur le module passé en argument |
| 102 | * *isWorkgroupOrganiser()* : détermine si un utilisateur dispose des droits d*organisateur_ sur un groupe de travail |
||
| 103 | * *IsSuperAdmin()* : retourne _true_ si l'utilisateur est un administrateur |
||
| 104 | |||
| 105 | |||
| 106 | h2. Pour aller plus loin |
||
| 107 | |||
| 108 | |||
| 109 | 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 |