|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre confirmé
![]() Inscription : février 2009 Messages : 317 ![]() |
Bonjour,
J'aurais besoin de faire une redirection dans un template. Je sais que c'est contraire aux principes de symfony, mais c'est une des seules manière qu'il me reste. Je veux interdire l'acces à des modules de mon application dans certains cas ( utilisateur expiré ou désactivé ). J'avais pensé aux credentials pour gérer cela mais je n'arrive pas à les faire fonctionner. Voici mon fichier security.yml pour l'un des modules que je souhaite restreindre : Code :
|
||
|
|
00
|
|
|
#2 | ||
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Les crédentials permettent de valider l'accès, pas de l'interdire. Donc plutôt que d'utiliser un credential : expired il conviendra d'en utiliser un valid_user.
Ce qui, par le retrait du crédential aux utilisateurs concerné, permetra de leur interdir l'accès à différents modules. La réaction dépendra un peu de ton environnement, notamment de l'utilisation (ou non) de sfGuard. En cas d'absence de credential et de déclaration faîtes dans le view.yml de chaque module (ou globalement) les utilisateurs sont renvoyé vers une url précisé dans le setting.yml par les paramètres : Code :
Tu peux aussi modifier ton myUser et y rajouter une méthode qui retourne vrai si l'utilisateur est actif. Dans ce cas, soit action par action dans ton contrôleur, soit par la méthode preExecute() qui est exécuter avant toutes autres action dans ce contrôleur. L'utilisation d'un redirect ou d'un forward (ou mieux d'un forwardUntil() ) permettre de rediriger l'utilisateur vers le module de traitement. Attention, tu dis : "de faire une redirection dans un template" pour moi, en symfony, cela signifie que tu traites le contrôleur et qu'à la fin de son exécution tu rediriges vers un autre template, ce qui me semble une très mauvaise idée. Il vaut mieux rediriger en début de traitement de l'action vers une autre action (et son template).
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
||
|
10
|
|
|
#3 | |
|
Membre confirmé
![]() Inscription : février 2009 Messages : 317 ![]() |
Citation:
Peux tu m'éclairer un peu sur la méthode preExecute() ? Comment l'implémenter ? Merci. |
|
|
|
00
|
|
|
#4 |
|
Membre confirmé
![]() Inscription : février 2009 Messages : 317 ![]() |
J'ai réussi à faire ce que je voulais avec preExecute.
Merci Michel pour l'infos |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com