Permissions: niveau complexe
Niveau complexe: Fonctions avancées
Le niveau de permission complexe ajoute quelques fonctions supplémentaires.
Lorsque vous travaillez avec ce niveau de permissions, les fonctions de droits implicites pevent être utilisées en plus de tous les concepts abordés dans les niveaux simples et intermédiaires. C'est ce que nous examinerons maintenant.
Note: D'autres concepts et carractéristiques additionnels seront décrits ultérieurement.
La vue fonctionnele
La différence avec le niveau intermédiaire est:
- lorsqu'un droit est accordé, l'utilisateur peut automatiquement se voir accorder un autre droit. Ceci est appelé un «droit implicite».
- Les sous-groupes sont également supportés
Les fonctions suivantes ne sont pas couvertes et doivent encore être documentées:
- les permissions limitées par la propriété
- les types d'utilisateurs: d'utilisateur à admin
- les niveaux d'utilisateurs: d'utilisateur «area» à «super user»
- les niveaux d'administration : de «area» à «master admin»
- les sous-groupes
La vue technique
D'un point de vue technique, une nouvelle table nous servira à définir les droits implicites.
The «liveuser_right_implied» Table
Nous allons maintenant commencer par définir les droits implicites: Lorsque quelqu'un est autorisé à éditer les événements, il sera aussi autorisé à les voir,...
Ensuite, nous pouvons simplifier les droits accordés à chaque groupe.
Remplissons la table «liveuser_right_implied»avec:
- un «right id»
- un «implied_right_id»
| right_id | implied_right_id |
|---|---|
| 2 | 1 |
| 3 | 1 |
| 4 | 1 |
The «liveuser_grouprights» Table
Nous pouvons maintenant simplifier la table «liveuser_grouprights»
- le «group_id»: l'identifiant du groupe
- le «group_right_id»: l'identifiant du droit
- le «right_level»: positionons le à 3 pour l'instant. Nous y reviendrons plus tard
| group_id | group_right_id | right_level |
|---|---|---|
| 1 | 1 | 3 |
| 2 | 2 | 3 |
| 2 | 3 | 3 |
| 3 | 4 | 3 |
Le fichier de configuration
Pour pouvoir utiliser les droits implicites du système de permissions le fichier de configuration doit être adapté, plus particulièrement le vecteur «perm container»: de «Simple»/«Medium» à «Complex».
...
'permContainer' => array(
'type' => 'Complex',
'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, définie comme un ensemble de constantes reste inchangée, dans un fichier séparé.
Vérifiez les droits des utilisateurs
Notre fichier de test reste inchangé.
Télécharger «LU_test_rights2.php»
Tester les droits d'accès
Sans surprise, les tests avec les 3 utilisateurs donnent le même résultat.
Le résultat pour «userA» est:

Le résultat pour «userB» est:

Le résultat pour «admin» est:






