Section: Les concepts de jAcl2.db
« Utiliser jAcl2 dans ses modules | ^ jAcl2 : système de droits | Configurer jAcl2.db » |
− Table des matières
jAcl2.db est le driver "db" pour jAcl2 et se sert d'une base de données pour stocker les droits. Les explications suivantes sont valables pour le driver "jAcl2.dbcache".
jAcl2.db implémente les concepts généraux de jAcl2, avec en plus une gestion de groupes d'utilisateurs. Aussi les éléments qui entrent en jeu dans le système de droits de jAcl2.db sont :
- un nom de droit
- un groupe d'utilisateurs
- une ressource (facultatif)
une combinaison de chacun de ces types d'éléments représente un droit.
Groupes et Utilisateur ¶
Chaque utilisateur appartient à un ou plusieurs groupes. Un droit s'exerce toujours sur un ou plusieurs groupes et non pas sur un utilisateur précis.
Il est possible d'affecter des droits à un seul utilisateur, mais cela se traduit en fait par l'existence d'un groupe 'privé' propre à chaque utilisateur (afin de faciliter les traitements). En clair, chaque utilisateur possède son groupe personnel dans lequel il est seul.
Il y a trois types de groupes :
- les groupes privés. On ne les "voit" pas dans la liste des groupes
- les groupes normaux
- les groupes normaux par défaut : ceux dans lesquels un nouvel utilisateur est intégré automatiquement.
Classes utilitaires ¶
Deux classes accompagnent le driver jAcl2.db pour gérer les groupes,
utilisateurs, droits etc : jAcl2DbManager
et jAcl2DbUserGroup
.
Leur utilisation est similaire d'un point de vue théorique aux commandes de jelix-scripts (décrites dans Configurer jAcl2.db), aussi nous vous laissons lire la documentation de reference.
Modèle Conceptuel de Données de jAcl2.db ¶
Vous noterez que des noms de tables ou de champs utilisent le mot 'subject'. C'est parce que dans Jelix 1.6 et autres versions antérieures, les nom des droits étaient appelés des "sujets". Pour garder la compatibilité avec les versions précédentes, les tables et champs n'ont pas été renommés dans Jelix 1.7. Sujets et droits sont la même notion.