Permissions: niveau intermédiaire
Niveau intermédiaire: Assigner des droits à des groupes d'utilisateurs
Un nombre grandissant d'utilisateur du système va rapidement limiter l'utilité du niveau de permissions simple. Accorder des droits à un groupe d'utilisateurs nécéssite moins de travail que de répéter cette opération pour chacun d'entre eux.
Lorsque l'on travaille avec le niveau de permission suivant, LiveUser fait en sorte que ces nouveaux concepts soient disponibles.
La vue fonctionnelle
En plus de tous les concepts décrits dans le niveau simple, nous pouvons maintenant nous intéresser aux groupes d'utilisateurs.
Les utilisateurs peuvent être répertoriés dans des groupes pour faciliter la gestion des droits. Pour chaque groupe, notez son nom, s'il doit être considéré comme actif ainsi qu'un identifiant pour ce groupe.
Du point de vue fonctionnel au technique...
La table «liveuser_groups»
Sur base des besoins fonctionnels remplissons la table «liveuser_groups»
- group id: l'identifiant du groupe
- group_type: nous indiquerons la valeur «0» pour l'instant et nous reviendrons plus tard sur cette donnée
- group_define_name: le nom du groupe
- is_active: 1 (=yes) or 0 (=no)
- owner_user_id
- owner_group_id
| group_id | group_define_name | is_active | ... |
|---|---|---|---|
| 1 | EVE_VIEWER | 1 | |
| 2 | EVE_EDITOR | 1 | |
| 3 | EVE_EDITOR_DEL | 1 |
Ensuite, les droits sont accordés à des groupes. Les utilisateurs sont répertoriés comme membre des groupes.
D'un point de vue technique, 2 tables supplémentaires sont utilisées pour effectuer ces liens: «liveuser_grouprights» and «liveuser_groupusers».
La table «liveuser_grouprights»
Maintenant nous allons effectuer le lien entre un groupe d'utilisateurs et la liste des droits dans la table «liveuser_grouprights»
- group_id: l'identifiant du groupe
- right_id: l'identifiant du droit
- right_level: positionnez-le à 3 pour l'instant. Nous reviendrons plus tard sur cette donnée
| group_id | right_id | right_level |
|---|---|---|
| 1 | 1 | 3 |
| 2 | 1 | 3 |
| 2 | 2 | 3 |
| 2 | 3 | 3 |
| 3 | 1 | 3 |
| 3 | 4 | 3 |
La table «liveuser_groupusers»
Et chaque utilisateur sera un membre d'un groupe, comme indiqué dans la table «liveuser_groupusers»
- perm_user_id: l'identifiant de l'utilisateur (au niveau permission)
- group_id: l'identifiant du group
| perm_user_id | group_id |
|---|---|
| 1 | 3 |
| 2 | 1 |
| 3 | 2 |
| 4 | 1 |
Le fichier de configuration
Pour pouvoir utiliser les groupes dans le système de permissions, le fichier de configuration doit être mis à jour, plus particulièrement dans le vecteur «perm container»: de «Simple» à «Medium».
...
'permContainer' => array(
'type' => 'Medium',
'storage' => array(
'MDB2' => array( // storage container name
'dsn' => $dsn,
'prefix' => 'liveuser_', // table prefix
'tables' => array(),
'fields' => array(),
'alias' => array()
)
)
)
...
Enumérez les droits
La liste des droits sous forme d'un ensemble de constantes reste inchangée dans un fichier séparé.
Vérifiez les droits des utilisateurs
Maintenant, après l'identification vous vérifiez qu'un droit particulier à été accordé à un utilisateur. Vous pouvez alors lui accorder ou nom l'accès à un contenu particulier..
Télécharger «LU_test_rights2.php»
...
if (!$LU->checkRight(EVE_VIEW))
{
echo 'You are not authorized to view events.';
}
else
{
echo 'You are authorized to view events.';
}
if (!(EVE_CREATE))
{
echo 'You are not authorized to create events.';
}
else
{
echo 'You are authorized to create events.';
}
if (!(EVE_EDIT))
{
echo 'You are not authorized to modify events.';
}
else
{
echo 'You are authorized to modify events.';
}
if (!(EVE_DELETE))
{
echo 'You are not authorized to delete events.';
}
else
{
echo 'You are authorized to delete events.';
}
...
Tester les permissions
Testons avec 3 utilisateurs définis dans la table «liveuser_users»: userA, userB et Admin
User A
Le résultat pour «userA» est:

User B
Le résultat pour «userB» est:

Admin User
Le résultat pour «admin» est:






