Просмотр страницы показа для пункта меню в Active Admin - PullRequest
1 голос
/ 10 марта 2012

Я хотел бы динамически изменять меню в зависимости от прав просмотра пользователя.Я бы хотел, чтобы пользователь superadmin имел доступ к обычным действиям с ресурсами (индекс, шоу, обновление и т. Д.).Поэтому, когда администратор нажимает на элемент меню, он переводит их в индекс этого ресурса.Я хотел бы ограничить обычного пользователя с правами администратора только просмотром определенной страницы шоу.

Маршрут меню для суперадмина будет: / admin / resource
Маршрут меню для обычного администратора будет: /admin / resource / id

Я также хотел бы ограничить обычный доступ администратора к представлению индекса или другим ресурсам, к которым у них нет доступа.Мне удалось достичь обеих этих целей, но мне еще не удалось сопоставить пункт меню с конкретной страницей шоу.Я знаю, что мог бы создать собственную страницу и просмотр, но я действительно хотел бы поделиться настраиваемым DSL для страниц шоу и редактирования между superadmin и обычным администратором.

Кто-нибудь знает, как это сделать.

1 Ответ

1 голос
/ 12 марта 2012

Хорошо, так что я нашел способ получить то, что я хочу. Я не уверен, точно ли выполняет то, что хотел. (имеется в виду, что было бы неплохо создать пользовательские пункты меню, которые сопоставлены с конкретными ресурсами)

Я просто переписал действие контроллера индекса, чтобы перенаправить на определенную страницу шоу. Поскольку супер администратору нужен доступ к исходному ресурсу Store, мне пришлось присвоить ему псевдоним: as.

ActiveAdmin.register Store, :as => 'My Store' do
  menu :if => proc{ !current_user.is_admin? },
       :label => 'My Store'

  actions :show, :edit, :update

  controller do
    def index
      redirect_to(admin_my_store_url(current_user.store))
    end
  end
end
...