Bonjour,
Je suis en train de développer une application dans laquelle j'ai besoin de mettre en place une gestion des droits utilisateurs assez poussée et surtout qui soit ensuite modifiable par un "super admin"
L'idée serait de mettre en place des Template de droits de base.
Exemple : un utilisateur de type "responsable" a accès à telle et telle fonctionnalité.
Tout les responsables ont les même droits.
Mais l'admin pourrait ensuite aller ajuster les droits pour chaque utilisateurs afin de leur donner accès à plus ou moins de fonctionnalités et créer ainsi un template de droits spécifique à chaque utilisateur.
J'ai pas mal potassé les différentes docs trouvées ici ou là sur internet et pour l'instant j'ai repéré 3 choses :
- Les rôles : D'après ce que j'ai compris les rôles permettent de restreindre l'accès a certaines url de l'appli grâce aux "access_control" du fichier security.yml.
Mais si je veux gérer chacune de mes fonctionnalités de cette manière je vais avoir une liste "access_control" longue comme le bras. Et chaque user risque lui aussi de se retrouver avec une liste de rôles assez énorme car il faudrait qu'il y ai un rôle par fonctionnalité dans mon appli je vous laisse imaginer le truc.
Le mieux serais d'attribuer un rôle spécifique à chaque user et de dire à quelles fonctionnalité a droit chaque role mais on revient au point de départ et c'est le serpent qui se mord la queue.
- Les ACL : Alors la j'avoue que j'ai pas bien saisi le fonctionnement. J'ai bien lu la doc et d'après ce que j'ai compris cela permet de restreindre des actions faites sur des objets ou des entités. Mais ça reste très obscure pour moi. Si quelqu'un a un tuto un peu plus complet que celui de la doc offcielle a me donner je le remercie d'avance.
- Les voter : C'est la aussi assez obscur pour moi. J'ai vu que c’était une classe qui permet de savoir si oui ou non un utilisateur dispose de telle ou telle autorisation. Et j'ai aussi qu'on peut en créer des personnalisés pour coller au mieux a nos besoins. Mais la aussi j'ai du mal à voir comment les mettre en application dans mon cas.
Bref comme vous pouvez le voir je me suis pas mal renseigné mais tout cela reste assez flou pour moi, si vous avez des conseils à me donner sur la méthode à utiliser pour obtenir le fonctionnement que je veux ce serai super. J'ai pas peur de me creuser les méninges mais j'aimerais éviter de me lancer sur une mauvaise piste.
Et si les pro que vous être pouvaient éclairer un peu plus ma lanterne sur les ACL et les voter je vous en serai reconnaissant.
Ah oui je n'utilise pas FOSUser et ne souhaite pas l'utiliser car mon appli se connecte dynamiquement à une base de donnée, qui n'est pas connue à l'avance, en fonction de l'utilisateur qui se log. Et je n'ai pas réussi à utiliser FOSUser avec ce système. J'utilise donc les notions de base de symfony2 pour tout ce qui est User et authentification.
D'avance merci
Partager