Project

General

Profile

SessionCookies < 16 » History » Version 11

Simon, 02/28/2012 11:13 AM

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 9 Simon
== Interface publique ==
6 1 Simon
7
L'interface publique utilise les cookies.
8
9 9 Simon
=== Quels sont les cookies disponibles? ===
10 1 Simon
11
 * '''id''' : identifiant de l'utilisateur
12
 * '''whois''' : mot de passe crypté encodé en [http://fr2.php.net/manual/en/function.base64-encode.php base64].
13
 * '''login''' : login de l'utilisateur
14
 * '''workshop''' : groupes auxquels l'utilisateur participe
15
 * '''lifetime''' : date d'expiration des cookies
16 5 Simon
 * '''firstname''' : prénom de l'utilisateur (optionnel - seulement si renseigné)
17 1 Simon
18 2 Simon
19 9 Simon
=== Comment utiliser les cookies ? ===
20 1 Simon
21 11 Simon
Ces cookies sont stockés dans le tableau PHP (''array'') linea21 et sont, par conséquent, accessibles de cette manière :
22 1 Simon
23 7 Simon
24 1 Simon
{{{
25 3 Simon
<?php
26 1 Simon
echo $_COOKIE['linea21']['id'];
27
echo $_COOKIE['linea21']['whois'];
28
echo $_COOKIE['linea21']['login'];
29
echo $_COOKIE['linea21']['workshop'];
30
echo $_COOKIE['linea21']['lifetime'];
31
echo $_COOKIE['linea21']['firstname'];
32 3 Simon
?>
33 1 Simon
}}}
34
35 2 Simon
36 9 Simon
=== Quelques méthodes utiles ===
37 2 Simon
38
 * '''updateCookieWorkshop()''' permet de mettre à jour la liste des groupes de travail auxquels participe l'utilisateur authentifié. 
39 10 Simon
 * '''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''.
40 2 Simon
 * '''DestroyUserCookie()''' détruit l'ensemble des variables du cookie $_COOKIE['linea21']; 
41 1 Simon
42
43 7 Simon
44 9 Simon
== Interface d'administration ==
45 1 Simon
46
L'interface d'administration utilise les sessions.
47 3 Simon
48
Les informations utilisateurs stockées sont les suivantes :
49
50 4 Simon
 * '''authenticated''' : Prend la valeur true, indique que l'utilisateur est authentifié
51
 * '''id''' : stocke l'identifiant de l'utilisateur encodé en [http://fr2.php.net/manual/en/function.base64-encode.php base64]
52
 * '''whois''' : stocke le mot de passe crypté encodé en [http://fr2.php.net/manual/en/function.base64-encode.php base64]
53
 * '''login''' : stocke le login de l'utilisateur authentifié
54 1 Simon
 * '''right''' : 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''.
55 3 Simon
56 1 Simon
57 9 Simon
=== Comment utiliser les variables de session ? ===
58 1 Simon
59 5 Simon
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 :
60
61 1 Simon
{{{
62
<?php
63 5 Simon
echo $_SESSION['id'];
64
// retournera l'identifiant de l'utilisateur encodé en base64
65
66
GetSessionElement('id');
67
// retournera l'identifiant au format brut
68
69
GetSessionElement('right_news');
70
// retournera les droits d'accès de l'utilisateur sur le module news
71 3 Simon
?>
72 1 Simon
}}}
73 5 Simon
74 9 Simon
=== Cookies ===
75 1 Simon
76 6 Simon
Sur l'interface d'administration, 4 cookies sont également utilisés pour améliorer le confort de l'utilisateur : 
77 1 Simon
78 7 Simon
 * '''linea21_lastpage''' : dernière page visitée
79
 * '''linea21_lastactivity''' : date et heure de la dernière activité
80
 * '''linea21_lastcon''' : date et heure de la dernière connexion
81
 * '''linea21_lastuser''' : dernier utilisateur connecté à l'application
82 6 Simon
83 9 Simon
=== Quelques méthodes utiles ===
84 5 Simon
85 1 Simon
 * '''hasRight()''' : détermine si un utilisateur a les droits sur le module passé en argument
86 10 Simon
 * '''isWorkgroupOrganiser()''' : détermine si un utilisateur dispose des droits d'''organisateur'' sur un groupe de travail
87 7 Simon
 * '''IsSuperAdmin()''' : retourne ''true'' si l'utilisateur est un administrateur
88 6 Simon
89 9 Simon
== Pour aller plus loin ==
90 6 Simon
91
Les méthodes d'authentification ainsi que les méthodes relatives aux sessions et aux cookies se situent dans le fichier [http://dev.linea21.com/trac/browser/linea21/trunk/v1/lib/functions_auth.php functions_auth.php]