Entwickeln.Holen Sie sich die Rolle current_user
-
27-10-2019 - |
Frage
Es folgt die Frage Resque, Devise und Admin-Authentifizierung .
Angenommen, wir haben:
User.last.role #=> 'admin'
Neues Problem ist: Wie bekomme ich einen Zugriff auf den aktuellen Benutzer (da ich User.role habe, die 'admin' oder 'user' sein kann) von hier aus:
require 'resque/server'
class SecureResqueServer < Resque::Server
before do
#redirect '/login' unless current_user.role == 'admin'
end
end
Danke.
Lösung 2
Nun, alles ist viel einfacher. Um die aktuelle Benutzerinstanz direkt von Warden abzurufen, müssen Sie nur:
env['warden'].user
Auf diese Weise können Sie mit dem oben beschriebenen Devise- und Rollensystem:
require 'resque/server'
class SecureResqueServer < Resque::Server
before do
redirect '/login' unless env['warden'].user.role == 'admin'
end
end
Andere Tipps
Ich habe nur Erfahrung mit Authlogic und Resque, aber dies scheint relevant zu sein:
http://blog.kiskolabs.com/post/776939029/rails3-resque-devise
Der Autor hat sein Blog aktualisiert und schlägt vor, dass Sie Ihren Routen Folgendes hinzufügen und es offensichtlich an Ihre spezifischen Bedürfnisse anpassen:
authenticate :admin do
mount Resque::Server.new, :at => "/resque"
end