Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je viens vers vous pour m'arrêter desuite si je ne vais pas dans la bonne voie...
Je compte gérer pour la première fois des notions de droits avec users et groupes correctement. C'est à dire autrement que quand on débute, avec des mauvaises conditions en dur dans le code :p
Je met en place un intranet qui permet de suivre l'avancée de projets web.
Un truc 'simple': des sociétés, des projets liés à ces sociétés, des éléments (appartenant à une catégorie, ex: 'graphisme', 'montage', etc.) à ajouter aux projets, du versionning pour les éléments, etc.
Des utilisateurs associés à une société, qui pourront en fonction de leurs roles :
- ajouter / supprimer / modifier des sociétés (super admin ça),
- ajouter / supprimer / modifier des catégories d'éléments,
- voir / ajouter / supprimer / modifier des projets,
- voir / ajouter / supprimer / modifier des éléments,
- voir / commenter / ajouter / supprimer / modifier des versions d'éléments.
Voici mon premier jet de MCD : Images schema devzone
Qui me dérange fortement. Je suis conscient qu'il s'agit ici de lacunes de ma part, peut-être aussi un problème d'expérience hein
Donc si je n'ai pas rien compris aux ACL, dans mon schema, les resources sont les différentes pages qui seront associées à des controllers, et les privilèges, les actions dans ces controlleurs.
Me trompe-je ?
Après j'ai des questions plus particulières,
1°/ comment feriez-vous pour intégrer une notion de "propriétaire".
Si par exemple je veux autoriser certaines actions uniquement s'il s'agit du propriétaire du projet ou de l'élement.
2°/ pour donner des droits selon les projets ?
Je visualise mal ce à quoi devront ressembler les url en fait :
- mon_intranet/project/add
- mon_intranet/project/project_id/read
- mon_intranet/project/project_id/update
- mon_intranet/project/project_id/delete
Comment faire dans ce cas pour n'avoir qu'un unique controller ?
- mon_intranet/project/element/add
- mon_intranet/project/element/element_id/update
- mon_intranet/project/element/element_id/delete
- mon_intranet/project/element/element_version/read
- mon_intranet/project/element/element_version/add
- mon_intranet/project/element/element_version/update
- mon_intranet/project/element/element_version/delete
- mon_intranet/project/element/element_version/addComment/
- mon_intranet/project/element/element_version/editComment/
- mon_intranet/project/element/element_version/deleteComment/
Même question
Tout ça est très brouillon pour moi.
Si certains veulent bien me faire partager leur expérience !
Merci beaucoup.
A+ Benjamin.
Dernière modification par Delprog (05-10-2008 17:05:33)
Hors ligne