Aller au contenu

Gestion des accès utilisateurs dans un CMS


Ace

Sujets conseillés

Ma précédente question (système LDAP gratuit sous windows) était en fait sous-jacente à cette question que je vais poser là tout de suite et que j'aurais dû me poser en premier d'ailleurs :

Est-ce quelqu'un peut me donner un début de méthodologie pour une bonne gestion des droits d'accès dans un CMS.

Je développe quand même un peu, si vous permettez ;)

Je travaille au développement d'un CMS d'entreprise. Comprenez par là, par opposition à un CMS orienté publication d'articles. Le CMS est entièrement basé sur une architecture XML (tous les contenus sont gérés dans des fichiers XML, stockés dans une BD native XML, eXist

Mon CMS est construit sur une architecture modulaire. Chaque module est indépendant des autres, mais peut également interragir avec les autres. Quelques modules déjà partiellement développés dans ce CMS sont par exemple : un système de traitement de lot de factures en XML (on rentre un lot de X factures formaté en XML et il en ressort un PDF généré sur la base du lot et d'un autre fichier XML "modèle" contenant les données communes à chaque facture).

Autre module : un module gestion de projet. C'est une sorte de mélange entre base de connaissances et gestion de projet. Mais on peut définir une arborescence de tâche et de sous tâches pour chaque projet et les participants au projets pourront ensuite venir saisir des étapes de travail réalisées sur les différentes tâches. On pourras ensuite évaluer si l'on a pris du retard ou pas, quels sont les totaux d'heures des différents intervenants du projets, etc.

Bref, il y a déjà une dizaine de modules de ce genre et il y en aura d'autres. Et maintenant je commence à sérieusement avoir de la peine à gérer correctement les droits d'accès. J'ai quelques impératifs quand même :

Gérer des entreprises : on doit pouvoir créer des surensembles des simples utilisateurs, qui sont des entreprises. Concrétement, cela permet de gérer des partenaire de la société dans laquelle est implanté le CMS et d'administrer des droits pour chaque partenaire à différent niveau.

Gérer des droits à l'intérieur même d'une page : jusqu'à maintenant je gérais sans trop de difficulté les accès aux pages. Mais lorsque l'on reprend l'exemple du module projets, on se rend compte qu'il faut gérer, pour chaque projet des droits à plusieurs niveau (celui qui aura le droit de modifier l'arborescence des tâches, celui qui ne pourra qu'insérer des étapes de travail, et celui qui n'aura qu'un simple accès en lecture (le client par exemple)). Là ça chauffe carrément !

Etat actuel de mon modèle : On a des entreprises. Dans chaque entreprise, on peut déjà procéder à un premier filtre des modules et n'autoriser un quelconque accès qu'à un certain nombre de modules du CMS, on peut également créer des groupes (admin, secrétaires, clients, etc) au sein de chaque entreprise.

Dans chaque groupe, on peut définir les modules (ceux autorisés par l'entreprise contenant le groupe) auquels le groupe aura un accès, soit complet, soit restreint et là on a encore un niveau de précision en donnant individuellement un accès ou pas pour chaque page du module.

Ouf ! Avec ça on va déjà un bout, mais le problème de la gestion des droits "intrapage" n'est pas réglé, ni celui des exceptions (notion de rôles, je crois). Genre, le mec, là, de cette entreprise, dans ce groupe, il a quand-même accès à cet endroit, même si ses potes ils peuvent pas, etc...

Bon, en tout cas je remercie déjà fichtrement celles et ceux qui auront pris les 3h30 nécessaires à lire mon message et je ne leur en voudrai pas de ne pas tenter de me répondre. Mais ça fait du bien de vider son coeur de temps en temps ;)

Mais bon, si quelqu'un à une méthodologie, ou même une tape dans le dos, je suis preneur :yoot:

Lien vers le commentaire
Partager sur d’autres sites

Bon...

Contre ton message de 25 lignes, je te propose cet article de... 240 lignes :lol:

Gestion des accès membres.

Jettes un oeil à la librairie php phplib, qui permet de gérer ces accès membres, lorsqu'ils correspondent à ton exemple, ou à celui donné dans l'article.

N'hésites pas à revenir poser tes questions, s'il t'en restes ;)

Anonymus.

Lien vers le commentaire
Partager sur d’autres sites

Merci bien pour le lien :)

Ca me donne déjà un point de départ non négligeable. Je n'avais pas envisagé le problème en utilisant le bit bashing. Ca m'a l'air plutôt cool :D

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...