Je vais d'abord décrire le contexte. Je veux avoir une application symfony où je peux créer différentes zones. Dans chacune des zones, vous pouvez avoir différents types d'utilisateurs (ou de rôles). Chaque utilisateur peut avoir plusieurs rôles dans différents domaines.Où implémenter le filtre de sécurité pour les groupes dynamiques
Pour illustrer la question, nous allons définir:
- 2 zones: "zone 1" et "zone 2".
- 2 utilisateurs: "Utilisateur 1" et "Utilisateur 2".
- 2 rôles: "vendeur" et "acheteur".
- « User 1 » est un vendeur et un acheteur dans « zone 1 »
- « User 2 » est un vendeur et un acheteur dans « zone 1 » et un acheteur seulement dans « Zone 2 »
Ma question est: qui est le meilleur moyen de vérifier dans les pages restreintes si un utilisateur appartient à une zone donnée et s'il a le rôle requis dans ce domaine.
Après avoir réfléchi un peu, je l'ai fait ce qui suit:
- Lorsqu'une zone est créée, je crée aussi un sfGuardGroup par rôle et une sfGuardGroup mondiale pour la région, chaque suffixé avec la zone id. Ainsi, dans notre exemple, nous aurons les rôles:
- zone 1, les vendeurs-1, les acheteurs-1 pour la zone 1
- zone 2, les vendeurs-2, les acheteurs-2 pour la zone 2
- Les utilisateurs sont ajoutés aux groupes appropriés. Ainsi, dans notre exemple:
- utilisateur 1 appartiendra aux groupes zone 1, les vendeurs-1 et les acheteurs-1
- utilisateur 2 appartiendra à la zone-1 groupes, vendeurs-1, les acheteurs-1, zone -2 et acheteurs-2
- de l'URL, je sais dans quel domaine nous sommes, par exemple:
- http://example.com/area-1/sellers-restricted-page (accessible aux utilisateurs dans la zone-1 groupe et vendeurs-1)
- http://example.com/area-2/buyers-restricted-page (accessible aux utilisateurs de la zone de groupe-2 et des acheteurs-2)
- http://example.com/area-2/ (accessible aux utilisateurs dans la zone 2 groupe)
À ce moment-là, je suis un peu coincé que je ne peux pas le meilleur endroit pour mettre en œuvre le contrôle d'autorisation: modifier le filtre de protection ? Changer les actions?
Merci de m'avoir mis sur la bonne voie. Il semble qu'après quelques tests, j'arriverai à aller quelque part en utilisant un sfFilter personnalisé. –