2011-12-21 1 views
0

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

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

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

ответ

3

С канкан, вы можете проверить права доступа на объекты, как это:

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

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

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

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

Например:

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