Bonjour à tous,
Je suis en train d'essayer de schématiser les droits des utilisateurs pour un module d'un intranet et je m'arrache les cheveux pour trouver une organisation cohérente. Je m'explique...
Nous avons le groupe 'Ateliers' qui regroupe... tous les ateliers. (ce groupe est utilisé pour des droits génériques à tous les ateliers)
Chaque atelier à son groupe ('Peinture', 'Plomberie', 'Électricité', etc...).
Chaque atelier à un groupe 'Ouvrier', un groupe 'Contremaitre' et un groupe 'Responsable'.
Donc pour le moment rien de compliqué:
ATELIERS
|
ATELIER PEINTURE
| |
| OUVRIER PEINTURE
| |
| CONTREMAITRE PEINTURE
| |
| RESPONSABLE PEINTURE
|
ATELIER PLOMBERIE
|
ETC...
Comme on peut le constater les droits sont hérités, un responsable fait automatiquement partie du groupe 'Contremaitre' et 'Ouvriers'. En base de données je m'en sors très bien avec un parentId pour chaque groupe.
Seulement maintenant je vais avoir besoin d'avoir des groupes 'OUVRIERS', 'CONTREMAITRES' et 'RESPONSABLES' et là du coup mes parentId ne me servent à rien, il me faudrait un héritage multiple.
J'avais pensé rajouter une table relationnelle 'surgroupes' dans laquelle je ferais une jonction, par exemple, entre un ID de surgroupe et les ID de tous les groupes 'OUVRIERS', mais j'ai peur que cela complique un peu la gestion des groupes dans mon code avec deux tables. Je me demande bien comment font les autres pour avoir un système de droits assez fin (du type Windows avec des groupes qui regroupent d'autres groupes, etc...)
J'avais pensé à ça:
Cela vous parait-il cohérent??
Merci
Partager