Devise prima del filtro che impedisce l'accesso a “new_user_registration_path” meno che l'utente è firmato-in
-
26-09-2019 - |
Domanda
Sto usando Devise nella mia applicazione Rails. Il mio modello utenti è registrabile, il che significa che chiunque può andare a / utenti / sign_up e creare un nuovo account.
E 'possibile per proteggere questo percorso, in modo che solo signed_in gli utenti possono creare nuovi account?
Soluzione
Crea un controller con classe di Devise :: RegistrationsController heriting. Dopo è possibile aggiungere il filtro. È necessario solo definire questo controller come controller di registrazione
class RegistrationsController < Devise::RegistrationsController
before_filter :authenticate_user!
end
Nel vostro routes.rb
devise_for :users, :controllers => { :registrations => 'registrations'}
Altri suggerimenti
Non ha funzionato per me perché authenticate_user!
non è sempre chiamato.
I risolto in questo modo:
class RegistrationsController < Devise::RegistrationsController
before_filter :prevent_sign_up
private
def prevent_sign_up
redirect_to new_user_session_path and return
end
end
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow