Concevoir. Obtenez rôle current_user
-
27-10-2019 - |
Question
Il est une suite de la Resque, et la question Devise de l'authentification admin.
En supposant que nous avons:
User.last.role #=> 'admin'
Nouvelle question est: comment obtenir un accès à l'utilisateur en cours (comme j'ai User.role qui peut être « admin » ou « utilisateur ») de ceci:
require 'resque/server'
class SecureResqueServer < Resque::Server
before do
#redirect '/login' unless current_user.role == 'admin'
end
end
Merci.
La solution 2
Eh bien, tout est beaucoup plus simple. Pour obtenir instance en cours de l'utilisateur directement de Warden, il vous suffit:
env['warden'].user
De cette façon, en utilisant Concevoir et système rôles décrits ci-dessus, vous pouvez:
require 'resque/server'
class SecureResqueServer < Resque::Server
before do
redirect '/login' unless env['warden'].user.role == 'admin'
end
end
Autres conseils
Je n'ai une expérience avec authlogic et Resque, mais cela semble pertinent:
http://blog.kiskolabs.com/post/776939029/rails3- Resque-legs
L'auteur a mis à jour son blog et suggère que vous ajoutez ce qui suit à vos itinéraires, il adaptant évidemment à vos besoins spécifiques:
authenticate :admin do
mount Resque::Server.new, :at => "/resque"
end