Devise prima del filtro che impedisce l'accesso a “new_user_registration_path” meno che l'utente è firmato-in

StackOverflow https://stackoverflow.com/questions/4213006

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?

È stato utile?

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
scroll top