Bonjour
J'ai un problème que j'arrive pas à résoudre avec Symfony 2, en utilisant Doctrine.
J'ai une table user, une table droit, et une table site
Un user n'a pas accès à tous les sites, et pour ces sites il a différents droits différents selon les sites
Par exemple, dans une base où il y a 3 sites un utilisateur pourra avoir un accès comme ça :
site A :
- droit utilisateur
- droit admin
site B :
- droit utilisateur
site c :
- aucun droit
Pour schématiser ça au niveau de la base, j'ai fait une table pour relier ces 3 entitées qui s'appelle user_site_droit, qui possède l'id d'un user, l'id d'un droit, et l'id d'un site.
De cette manière on peut affecter un utilisateur à un site en lui donnant des droits, et s'il a plusieurs droit on rajoute une ligne avec le même id d'user et le même id de site mais des droits différents par exemple.
Jusque là, pas de soucis
Mais alors après avec symfony 2 j'arrive à rien, j'ai aucune idée de comment m'y prendre pour éditer ça
Dans l'idéal j'aimerai, lorsque j'édite mon utilisateur, pouvoir avoir la liste de tous les sites, et cocher ses droits pour chacun des sites.
J'ai vraiment aucune idée de comment faire ça avec des objets Form de symfony 2 ?
J'ai généré un form avec mon utilisateur du coup je peux éditer son nom etc
mais comment j'édite ce formulaire pour avoir des cases à cocher pour chaque site ?
pour reprendre l'exemple plus haut, dans mon interface d'admin il ce serait coché du genre :
site A :
☒ droit utilisateur
☒ droit admin
site B :
☒ droit utilisateur
☐ droit admin
site c :
☐ droit utilisateur
☐ droit admin
Vous pensez que c'est possible à faire en symfony ?
Est-ce que c'est la structure de ma base de données qui pause soucis ?
Je galère là dessus depuis des jours et je m'en sors pas
Pour du PHP classique j'aurais fait une requête qui prend tous les sites, puis une requête qui prend tous les droits et qui les balance dans une boucle et j'aurais fait le formulaire à la main, mais bon j'ai vraiment envie de faire un truc propre et d'apprendre à le faire en symfony mais j'y arrive pas, j'ai presque l'impression que c'est impossible à faire
