Ну, все намного проще.
Чтобы получить текущий экземпляр User напрямую из Warden, вам достаточно:
env['warden'].user
Таким образом, используя Devise и систему ролей, описанную выше, вы можете:
require 'resque/server'
class SecureResqueServer < Resque::Server
before do
redirect '/login' unless env['warden'].user.role == 'admin'
end
end