2015-04-07 2 views
5

В приложении Rails 4 с ярлыком activeadmin (текущая главная ветвь) Я использую Pundit для авторизации. Он хорошо работает для ressources, но мне не удается заставить его работать на страницах.Авторизация пользователя на странице activeadmin

Учитывая, например:

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

Как бы я авторизовать его для конкретного пользователя?

Читая риую Pundit я попытался с помощью следующего кода, но он не работает

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

    def show? 
    true 
    end 
end 

Любая идея?

ответ

6

Вот пример политики, которую я использую для панели инструментов. Я разместил его под policies/active_admin/page_policy.rb. Может быть, это могло бы иметь некоторую помощь

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

Большое спасибо, это работает как шарм;) – Alex

+1

@Alex вы должны погрузиться в Activeadmin кодовую найти такие вещи, как [это] (https://github.com/ activeadmin/activeadmin/BLOB/Master/спецификации/поддержка/шаблоны/политика/active_admin/page_policy.rb) – bsvin33t

Смежные вопросы