2015-04-07 14 views
5

In un'app Rails 4 con activeadmin gem (attuale ramo principale) Uso Pundit per l'autorizzazione. Funziona bene per le risorse, ma non riesco a farlo funzionare per le pagine.Autorizzazione Pundit sulla pagina personalizzata activeadmin

Dato per esempio:

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

Come dovrei autorizzazione per utente specifico?

Leggendo il readme Pundit ho provato con il seguente codice ma non funziona

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

    def show? 
    true 
    end 
end 

Qualche idea?

risposta

6

Ecco un criterio di esempio che sto utilizzando per la dashboard. L'ho messo sotto policies/active_admin/page_policy.rb. Forse questo potrebbe essere di qualche aiuto

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

Grazie mille, funziona come un fascino;) – Alex

+1

@alex bisogna tuffarsi in Activeadmin base di codice per trovare le cose come [questi] (https://github.com/ activeadmin/activeadmin/blob/master/spec/supporto/templates/politiche/active_admin/page_policy.rb) – bsvin33t

Problemi correlati