Project

General

Profile

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