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.

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top