Hello !
Et oui, pour mon premier message j'ouvre un sujet de plus sur SfGuard ! J'en suis désolé !
Bon, avant tout, un rapide passage sur le contexte de mon projet.
J'ai pour mission de mettre en place un site qui aura pour rôle de servir de vitrine et "d'intranet" pour l'association dans laquelle je fais mon stage. Une précision au sujet de l'association, elle dépasse largement le millier de salariés, vous pouvez déjà anticiper mon envie de fournir une application au maximum 'user friendly' !
Et dans le soucis de fournir quelque chose de propre, de facilement évolutif etc, j'ai porté mon choix sur symfony ... que je ne connaissais absolument pas il y a un mois ! (et je suis encore en train de découvrir les joies et les galères de sf).
Mon problème :
Actuellement, j'ai une table qui décrit les différents établissements et les services de l'association.
Comme vous l'avez surement compris, j'utilise pour la question des membres SfDoctrineGuard (et au passage la version 1.4 de sf). J'ai déjà commencer à travailler avec pour plusieurs fonctionnalités comme par exemple l'ajout d'informations de profil, modif des formulaire d'auth, droits sur mes pages (avec des perms du genre page_read_idDeLaPage, page_write_idDeLaPage), en somme : la base !
Avec tout ça, j'ai besoin de lier un utilisateur à un ou plusieurs etablissement/service. Ok, rien de plus simple ! Deux solutions :
1. Faire une relation n-n entre la table etablissementEtService et la table utilisateur ou le profil.
2. créer un groupe 'etablissement_idDeLetab' à la création d'un établissement et ensuite ajouter les utilisateurs dans les groupes correspondants.
Oui mais petit détail qui tue tout ! Dans chacun de ces établissements un utilisateur peut (et doit) avoir un rôle(directeur, éducateur, secrétaire, bénévole, cuisto...), et pas forcément le même dans chaque établissement !
Or j'ai appris que Symfsymf ne gère pas de lui même la possibilité de rajouter des informations (et de les exploitées) dans les tables de liaison des relations n-n. Il faut si j'ai tout compris obligatoirement passer par une table et un modèle intermédiaire en simulant le comportement n-n par deux liaisons n-1 et 1-n.
Donc n'étant pas encore super à l'aise dans l'extension et la redéfinition des plugins et des formulaires extravagants, nous avons choisi de lier directement les utilisateurs(via leur profil) aux établissements pour pouvoir présenter une premier prototype de la partie publique du site. Nous utilisons donc une table de ce type :
Bon, nous dirons que c'est 'fonctionnel' mais sans doute pas top, surtout coté administration ! (si j'ai bien compris pour faire quelque chose plûtot propre je pourrais regarder du coté du 'ahPlugin', mais bon, ce n'est pas notre sujet).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Role: columns: etablissement_et_service_id: type: integer(4) notnull: false profile_id: type: integer intitule: type: string(255) relations: roleIdservice: class: etablissementEtService local: etablissement_et_service_id foreign: id foreignAlias: Roles roleIdprofile: class: profile local: profile_id foreign: id foreignAlias: Roles
Je pourrais continuer dans cette voie, "MAIS" il reste une dernière chose.
Il y a des ensembles d'utilisateurs qui ne sont en fait rien de plus que des "groupes" (comme le Conseil d'administration ou le Bureau par exemple) mais qui ont tout de même des rôles similaires à ceux des établissements et services (président, secrétaire, vice président, trésorier, trésorier adjoint, membre..).
Il y aurait la possibilité d'inclure cecis dans la table établissementEtService et de leur attribuer un type particulier afin de ne pas s'en servir dans les traitements etc, mais bon, pas glop comme solution ! Et je vois déjà le cas où j'aurai besoin de faire faire des choses similaires dans la partie 'intranet' !
Donc en gros : plus le choix, il faut trouver comment ajouter des "roles" ou toutes autres informations à la liaison Group-User de SfGuard !
Après de multiples recherches, impossible de trouver des informations concernant cela...
Pourtant, cela me parait aberrant que personne n'ai jamais eu besoin d'ajouter un rôle dans les groupes de sfguard sachant qu'il est l'un des plugin les plus utilisés !
Ne serait-ce le cas où il faudrait attribuer des modérateurs aux groupes par exemple (même si en écrivant je me rend compte que ça serait possible avec des permissions genre 'moderator_groupe_id', donc mauvais exemple pour le coups ! ^^).
C'est donc à partir d'ici que j'ai besoin de votre aide ! Je ne suis pas vraiment chaud pour me lancer à l'aveugle dans la redéfinition du plugin au risque d'en altérer son bon fonctionnement, surtout avec mes compétences actuelles et le temps qui m'est imparti.
-Serai-je passé à coté du tuto ou du plugin du siècle ?
- Peut-être que je suis complètement à coté de la plaque.
- Peut être alors n'ai-je pas compris une subtilité ou une astuce dans l'utilisation du plugin
- ou alors est-ce peut être tout simplement impossible ou vraiment trop galère
- est-ce que je suis obliger de faire plusieurs groupes avec le même nom et un rôle différent (etab_id_membre, etab_il président ...) ==> vraiment vraiment pas glop pour le coups ! ^^
Bref, j'espère avoir suffisamment bien exposé ma situation, mon raisonnement et ce que je cherche à faire ! En résumer : HELP ! :p
Je reste convaincu que quelqu'un en est déjà passé par là avant moi ! ^^
PS : merci à ceux qui ont eu le courage de lire le pavé ! Et merci d'avance pour vos réponses !
Partager