Modifications publiées sur le svn (r455) :
Mise en place de méthodes de recherche dans la classe sfGuardUserProfilePeer¶
De manière semblable aux méthodes classiques (apportées par MyPropelBehaviorFilters), de nouvelles méthodes adaptées aux recherches selon les rôles prennent place : criteriaFromContextForRole(), criteriaFromFiltersForRole(), retrieveByContextForRole() et retrieveByFiltersForRole().
La différence se situe essentiellement dans la construction du criteria de base dans criteriaFromContextForRole(), qui doit se charger de la jointure vers la table Structure. Ici la notion d'appartenance à un EPN ne se fait plus sur l'EPN de rattachement du compte, mais avec les EPN sur lesquels le compte exerce son rôle (d'animateur ou coordinateur).
De plus toutes ces méthodes ont un paramètre supplémentaire : le nom du rôle concerné qui est toujours à spécifier.
Détermination plus subtile du contexte d'une fiche animateur/coordinateur¶
Pour tester les droits d'accès de l'utilisateur sur une fiche d'animateur ou de coordinateur, il faut d'abord déterminer le contexte (EPN/GEPN) de l'objet cible. La méthode PeerHelper::getContext() se charge de cette tâche.
En général pour un compte usager cela se fait via son EPN de rattachement. Pour un compte ayant un rôle, ce sont les EPN concernés par le rôle qui doivent être considérés. Cependant ce changement n'affecte que l'action SHOW. Pour les actions EDIT et DELETE, c'est toujours l'EPN de rattachement qui est utilisé.