Devise restrict to Admin role

43 views
Skip to first unread message

steliomo

unread,
May 27, 2012, 7:45:24 AM5/27/12
to ruby-sp
Oi Galera

Preciso de uma ajuda com o Devise

Bom tenho uma aplicação devenvolvida no rails 3 e uso devise para
autenticação. tenho dificuldades um limitar para apenas o user com o
role Admin cadastre mais users, ou seja, fazer com que so o user com o
role Admin faça o sign up.

Agradeço desde ja a atenção.

Abraços

Duke Khaos

unread,
May 27, 2012, 11:10:54 AM5/27/12
to rub...@googlegroups.com
Está usando o cancan ou fazendo tudo na mão?

Duke


2012/5/27 steliomo <stel...@gmail.com>

--
Você recebeu esta mensagem porque está inscrito no Grupo "ruby-sp" em
Grupos do Google.
Para postar neste grupo, envie um e-mail para rub...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para
ruby-sp+u...@googlegroups.com
Para ver mais opções, visite este grupo em
http://groups.google.com.br/group/ruby-sp?hl=pt-BR
Página oficial do GURU-SP: http://www.guru-sp.org

Pablo Cantero

unread,
May 27, 2012, 11:12:49 AM5/27/12
to rub...@googlegroups.com
Olá

Você pode usar o CanCan com Devise.



Se for só o que você está falando, talvez você possa fazer algo simples com before_filter.

No users controller

before_filter :authenticate_admin!, only: [:new, :create]

def authenticate_admin!
  unless current_user.admin?
     redirect_to root_path, notice: "Somente admins podem criar outros usuários"
  end
end

2012/5/27 steliomo <stel...@gmail.com>

Pedro Henrique

unread,
May 27, 2012, 11:11:30 AM5/27/12
to rub...@googlegroups.com
se for fazer no braço, só tirar o  :registerable  das configurações do devise no model e depois criar uma action "new user" validando se o user com role admin esta logado. 

Porem indico usar o rails_admin, é só tirar o  :registerable,  para o user não fazer sign_up, cadastrar o admin via seed e os outros pelo rails_admin

------
Pedro Henrique Passalini Soares
Graduando em Ciência da Computação  - UENF



Pedro Henrique

unread,
May 27, 2012, 11:12:17 AM5/27/12
to rub...@googlegroups.com
ps: se for fazer tudo na mão, use cancan!


------
Pedro Henrique Passalini Soares
Graduando em Ciência da Computação  - UENF



Stélio Moiane

unread,
May 27, 2012, 1:22:59 PM5/27/12
to rub...@googlegroups.com
Oi Galera

Muito obrigado a todos, estou a usar o CanCan sim!

O que eu pretendo é que não seja possivel fazer sign_up sem ser Admin.

Mesmo para os casos em que uma passo a url directo no browser

Abraços
--

************************************************
************************************************
Stélio Klésio Adriano Moiane
IT
+258852546100
+258846695143
skills:System Admin and Web Developer
************************************************

Thiago Ganzarolli da Silva

unread,
May 28, 2012, 9:19:02 AM5/28/12
to rub...@googlegroups.com
Stélio, se eu entendi o que você está falando, não faz sentido :-P
Você está dizendo que só o Admin pode fazer sign up, mas para fazer sign up você não deve estar logado. Como você vai fazer uma verificação de role sem ninguém pra validar? Acho que você está com um problema de fluxo de negócio mesmo. Faça uma interface para o Admin cadastrar novos usuários e não use o sign up do Devise.
É isso?

2012/5/27 Stélio Moiane <stel...@gmail.com>

Gustavo Sales

unread,
May 28, 2012, 10:06:34 AM5/28/12
to rub...@googlegroups.com
Lembrava de ver algo assim no wiki do devise. E ainda está lá: :D


[]'s

Gustavo

2012/5/27 Stélio Moiane <stel...@gmail.com>

Stélio Moiane

unread,
May 28, 2012, 9:34:52 AM5/28/12
to rub...@googlegroups.com
Oi Pedro.

O que eu quero é que o link default para sign_up do Devise pare de funcionar.

pois eu posso omitir mas para quem sabe pode violar o meu programa.

Não sei se fui claro. em todo caso obrigado pela dica

Abraços.

salomao lopes

unread,
May 28, 2012, 11:42:21 AM5/28/12
to rub...@googlegroups.com
excluindo o :registerable no model User não funcionaria??

[]'s

Salomão Lopes de Sousa



De: Stélio Moiane <stel...@gmail.com>
Para: rub...@googlegroups.com
Enviadas: Segunda-feira, 28 de Maio de 2012 10:34
Assunto: Re: [GURU-SP (ruby-sp)] Devise restrict to Admin role

Stélio Moiane

unread,
May 28, 2012, 12:03:07 PM5/28/12
to rub...@googlegroups.com
Até funciona.

nos casos em que na BD ja existem dados, mas quando chegar a hora de colocar a App em produção vou ter problemas.

a menos que insira directamente o primeiro user na BD.

Thiago Ganzarolli da Silva

unread,
May 28, 2012, 1:22:38 PM5/28/12
to rub...@googlegroups.com
Não tem nada a ver com ter dados ou não no DB. Se o que você quer é impedir que users façam sign_up, omita o :registrable. 

2012/5/28 Stélio Moiane <stel...@gmail.com>

Stélio Moiane

unread,
May 28, 2012, 4:47:05 PM5/28/12
to rub...@googlegroups.com
Oi a todos

Bingo, é mesmo isso que pretendia o Thiago solucionou a minha questão.

muito obrigado.

Valeu
Reply all
Reply to author
Forward
0 new messages