SessionCookies < 16 » History » Version 14
Simon, 03/11/2012 10:27 PM
1 | 8 | Simon | [[TOC]] |
---|---|---|---|
2 | |||
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 |