Permissions: niveau simple
Niveau simple: Assigner des droits aux utilisateurs directement
Le niveau de permissions simple est efficace pour la gestion d'applications simples avec peu d'utilisateurs.
Un nombre croissant d'utilisateurs ainsi qu'une complexité plus grande des applications, en terme d'aire fonctionnelles et de droits, vous fera sûrement implémenter un niveau de permission supérieur.
Nous pouvons maintenant commencer à assigner des droits aux utilisateurs.
La vue fonctionnelle
Une première manière de faire est d'assigner des droits directement à un utilisateur. C'est une façon simple de gérer des permisions. Dans ce cas, nous utiliserons seulement certains des concepts de LiveUser.
La «langue et les traductions» du niveau simple de gestion des permissions n'est pas encore prise en compte dans cette documentation. Nous n'y avons pas regardé car ce n'était pas dans nos priorités. Ceci cera examiné plus tard dans un contexte plus large que LiveUser.
La vue technique
Maintenant, nous pouvons passer du point de vue fonctionnel au point de vue technique.
Le graphique suivant montre quelles sont les tables LiveUser et les liens entre elles que nous devons construire pour assigner des droits directement aux utilisateurs.
Notez que les nombres dans les boites du graphique technique correspondent aux identifiants indiqués dans les exemples d'enregistrements des tables reprises dans ce document, de telle sorte que vous puissiez vous référer au graphique, pour une meilleure compréhension.
La table «liveuser_userrights»
Il sera nécessaire de créer un enregistrement dans la table «liveuser_userrights» pour effectuer le lien entre un utilisateur et un droit. Il contiendra:
- perm_user_id: l'identifiant d'utilisateur au niveau permission(perm_user_id)
- right_id: l'identifiant du droit accordé à l'utilisateur
- right_level: un niveau de droit: utilisé pour vérifier un accès basé sur la propriété d'un document. Utilisons la valeur 3 pour l'instant.
| perm_user_id | right_id | right_level |
|---|---|---|
| 12 | 1 | 3 |
Le fichier de configuration
Pour pouvoir utiliser le système de permissions, le fichier de configuration doit contenir des informations relatives au conteneur (container) de permission «permContainer».
...
'permContainer' => array(
'type' => 'Simple',
'storage' => array(
'MDB2' => array( // storage container name
'dsn' => $dsn,
'prefix' => 'liveuser_', // table prefix
'tables' => array(),
'fields' => array(),
'alias' => array()
)
)
)
...
Nous utiliserons MDB2 pour accéder les données relatives aux permissions.
Le paramétrage requis est:
- positionner le «type» à «Simple»
- Définir «MDB2»
Notez la valeur de «prefix» positionnée à «liveuser_» car toutes les tables LiveUser commencent par «liveuser_».
Notez aussi que les vecteurs «tables», «fields» and «alias» ne sont pas paramétrables pour le moment.
Enumérer les droits
Pour plus de facilité, c'est une bonne idée d'énumérer les droits dans un fichier séparé. Voir outputRightsConstants pour générer ce fichier.
Ainsi, des constantes ont été définies avec leur «right_id» correspondant comme valeur.
define('EVE_VIEW', 1); define('EVE_CREATE',2); define('EVE_EDIT', 3); define('EVE_DELETE',4);
Vérifier les droits des utilisateurs
Après l'identification vous vérifiez simplement si un droit particulier à été accordé à l'utilisateur. Vous pouvez alors lui fournir ou non un contenu particulier.
Télécharger «LU_test_rights.php»
...
if (!$LU->checkRight(EVE_VIEW))
{
echo 'You are not authorized to view events';
}
else
{
echo 'You are authorized to view events';
}
...
Testez-le
Utilisons «userF» défini dans la table «liveuser_users». Si aucun enregistrement associé n'est trouvé dans la table «liveuser_perm_users», aucun droit ne sera accordé à l'utilisateur.
Le résultat est:

Maintenant, configurez les droits
Nous définirons un enregistrement dans la table «liveuser_perm_users» (avec perm_user_id=12) associé à «userF». Accordons un droit (EVE_VIEW a right_id=1) directement à perm_user_id (=12). Laissez right_level=3.
| perm_user_id | auth_user_id | auth_container_name | perm_type |
|---|---|---|---|
| 12 | 25 | 0 | 1 |
| perm_user_id | right_id | right_level |
|---|---|---|
| 12 | 1 | 3 |
L'utilisateur est maintenant autorisé à voir les informations d'événements. Voyez le résultat ci-dessous






