2015-04-07 7 views
5

In einer Rails 4 App mit activeadmin gem (aktuellen Master-Zweig) verwende ich Pundit für die Autorisierung. Es funktioniert gut für Ressourcen, aber ich schaffe es nicht, es für Seiten arbeiten zu lassen.Pundit Autorisierung auf activeadmin benutzerdefinierte Seite

zum Beispiel Gegeben:

ActiveAdmin.register_page "Home" do 
    content do 
     para "some text" 
    end 
end 

Wie würde ich es für bestimmte Benutzer aktivieren?

Durch die Pundit readme lesen ich mit dem folgenden Code versucht, aber es nicht

class HomePolicy < Struct.new(:user, :home) 
    def index? 
    true 
    end 

    def show? 
    true 
    end 
end 

Jede Idee funktioniert?

Antwort

6

Hier ist eine Beispielrichtlinie, die ich für das Dashboard verwende. Ich habe es unter policies/active_admin/page_policy.rb platziert. Vielleicht könnte dies

eine Hilfe sein
class ActiveAdmin::PagePolicy 
    attr_reader :user, :record 

    def initialize(user, record) 
    @user = user 
    @record = record 
    end 

    def show? 
    case record.name 
    when 'Dashboard' 
     true 
    else 
     user.admin? 
    end 
    end 
end 
+0

Vielen Dank, es funktioniert wie ein Charme;) – Alex

+1

@ Alex Sie in Activeadmin Code-Basis tauchen müssen Dinge wie [diese] zu finden (https://github.com/ ActiveAdmin/ActiveAdmin/Blob/Master/Spezifikation/support/templates/Richtlinien/Active_Admin/page_policy.rb) – bsvin33t