Utilizzando l'ultimo Symfony e FOSUserbundle, dopo aver registrato con successo un nuovo utente, l'utente si collega automaticamente. Voglio impedirlo. La mia ragione è che solo un utente speciale dovrebbe essere in grado di registrare nuovi utenti.Disabilita l'accesso automatico dopo la registrazione in FOSUserbundle di Symfony
Suppongo di dover eseguire l'override del registroAzione nel RegisterController del pacchetto, ma non so come.
Ho provato: http://symfony.com/doc/current/bundles/FOSUserBundle/overriding_controllers.html, ma sembra essere obsoleto, nessun utente è stato creato con questo metodo.
Eventuali suggerimenti sono apprezzati.
Edit:
ho scoperto che non ho creato correttamente il fascio bambino. Ho anche dovuto creare il mio EventListener. Funziona ora quando sovrascrivo l'evento FOSUserEvents::REGISTRATION_SUCCESS
.
cosa strana è che quando uso l'evento FOSUserEvents::REGISTRATION_COMPLETED
, entrambi gli eventi vengono inviati, il mio fagotto e il FOSUserbundle di, in modo tale che l'utente viene reindirizzato al sito corretto, ma il login come nuovo utente.
Edit 2:
Quindi questo è nel mio ascoltatore:
public static function getSubscribedEvents()
{
return array(
FOSUserEvents::REGISTRATION_SUCCESS => 'onRegistrationSuccess',
FOSUserEvents::REGISTRATION_COMPLETED => 'onRegistrationCompleted',
);
}
public function onRegistrationSuccess(FormEvent $event)
{
$url = $this->router->generate('admin');
$event->setResponse(new RedirectResponse($url));
}
public function onRegistrationCompleted(FilterUserResponseEvent $event)
{
}
ho impostato il reindirizzamento in caso REGISTRATION_SUCCESS
e il REGISTRATION_COMPLETED
è vuoto. Con il debugger posso verificare che venga chiamato l'evento del mio ascoltatore, ma viene chiamato anche l'evento originale.
documenti mi sembrano ok. Esistono diversi modi per sovrascrivere un file di bundle. Stai facendo un "figlio" di userbundle come nei documenti? o qualcosa di diverso? Inoltre, se sei alla ricerca di un amministratore solo per poter creare utenti, forse il lato registro di FOSuserBundle è il bit sbagliato? Sicuramente la creazione di un CRUD per gestire gli utenti dietro un firewall amministratore sarebbe meglio? – DevDonkey
@DevDonkey: avevi ragione, non sono riuscito a creare il pacchetto correttamente. Sembra funzionare ora. Forse creare un CRUD sarebbe stato più facile. – dev0
cool, felice che tu abbia risolto il problema. – DevDonkey