Как использовать CanCan с администратором rails для проверки прав собственности

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

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

Я полагаю, что гораздо проще просто проверить, является ли пользователь администратором или нет администратором рельсов, поэтому, где настроить администратора рельсов только для извлечения записей текущего пользователя.


person Joseph Le Brech    schedule 21.12.2011    source источник


Ответы (1)


С помощью 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
person Community    schedule 10.02.2012