Как я могу использовать CanCan с администратором рельсов для проверки владения - PullRequest
0 голосов
/ 21 декабря 2011

Когда пользователь в моем приложении не является администратором, я хочу, чтобы он мог видеть только те поля, владельцем которых он является.

Есть ли такой набор can :see или что-то подобное для каждого поля, чтобы он отображал только те поля, которые используют "могут видеть", или я должен иметь возможность с именем can :oversee заявить, что они могут посмотри все вместо.

Полагаю, гораздо проще просто проверить, является ли пользователь администратором или нет в rails admin, поэтому, если установить rails admin, чтобы получать только записи текущего пользователя.

1 Ответ

3 голосов
/ 10 февраля 2012

С помощью cancan вы можете проверить разрешения для таких объектов:

if can?(:read, order)
  # do something!
end

if can?(:email, order)
  # do something!
end

Но это относится только к видимости на уровне объекта.

В RailsAdmin вы можете установить видимость поля, передавая блоки, описанные здесь .

Например:

RailsAdmin.config do |config|
  config.model Order do
    list do
      field :name
      field :profit do
        visible do
          current_user.roles.include?(:admin)
        end
      end
    end
  end
end
...