Авторизация Pundit на пользовательской странице activeadmin

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

Дано например:

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

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

Прочитав readme Pundit, я попытался использовать следующий код, но он не работает.

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

  def show?
    true
  end
end

Есть идеи ?


person Alex    schedule 07.04.2015    source источник


Ответы (1)


Вот пример политики, которую я использую для панели мониторинга. Я поместил его под 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
person bsvin33t    schedule 07.04.2015
comment
@Alex, вам нужно погрузиться в кодовую базу Activeadmin, чтобы найти такие вещи, как эти - person bsvin33t; 08.04.2015