Devise antes do filtro que impeça o acesso a "new_user_registration_path", a menos que o usuário esteja assinado

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

Pergunta

Estou usando o Devise no meu aplicativo Rails. Meu modelo de usuários é registrável, o que significa que qualquer um pode ir para /Usuários/Sign_up e crie uma nova conta.

É possível proteger essa rota, para que apenas os usuários assinados possam criar novas contas?

Foi útil?

Solução

Crie um controlador com a classe Devise :: RegistrationsController Heriting. Depois de adicionar seu filtro. Você só precisa definir este controlador como o controlador de registro

class RegistrationsController < Devise::RegistrationsController
  before_filter :authenticate_user!
end

Em suas rotas.rb

devise_for :users, :controllers => { :registrations => 'registrations'}

Outras dicas

Não funcionou para mim porque authenticate_user! não está sendo chamado.

Eu consertei assim:

class RegistrationsController < Devise::RegistrationsController
    before_filter :prevent_sign_up

private
    def prevent_sign_up
        redirect_to new_user_session_path and return
    end
end
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top