Nachdem der Benutzer sein Passwort mit dem Passwort-Reset von FOSUserBundle zurückgesetzt hat, wird er standardmäßig zum FOSUserProfile weitergeleitet. Ich möchte entsprechend ihrer Rolle auf eine andere Route umleiten. Ist das möglich und wenn ja, wie? ich diesen Code, aber es alle Arten von Benutzer umleitenFOSUserBundle: Erfolgsziel nach dem Zurücksetzen des Passworts nach Rollen
namespace Acme\UserBundle\EventListener;
use FOS\UserBundle\FOSUserEvents;
use FOS\UserBundle\Event\FormEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
/**
* Listener responsible to change the redirection at the end of the password resetting
*/
class PasswordResettingListener implements EventSubscriberInterface {
private $router;
public function __construct(UrlGeneratorInterface $router) {
$this->router = $router;
}
public static function getSubscribedEvents() {
return [
FOSUserEvents::RESETTING_RESET_SUCCESS => 'onPasswordResettingSuccess',
];
}
public function onPasswordResettingSuccess(FormEvent $event) {
$url = $this->router->generate('homepage');
$event->setResponse(new RedirectResponse($url));
}
}
Und dann mit
services:
acme_user.password_resetting:
class: Acme\UserBundle\EventListener\PasswordResettingListener
arguments: [ "@router" ]
tags:
- { name: kernel.event_subscriber }
http://symfony.com/blog/new-in-symfony-2-6-security-component-improvements – pavlovich