Как проверить минимальные разрешения и разрешить СУХОЕ разрешение для всех родительских ролей?
Скажем, у меня есть 4 роли: user
, agent
, admin
, superadmin
,
Где каждая роль впоследствии имеет больше прав на все объекты в моем приложении.
Я использую Rolify, CanCan & Devise.
То, что я хотел бы сделать, это когда я хочу что-то включить - скажите:
<%= link_to "Create New User", new_user_registration_path if current_user.has_role? :superadmin %>
Я хотел бы, чтобы эта ссылка показывала, является ли человек admin
или superadmin
, Я знаю, я мог бы просто сделать ||
- но это не кажется очень сухим, особенно потому, что мне придется сделать current_user.has_role? :superadmin || current_user.has_role? :admin
,
Представьте, что есть некоторые ссылки / ресурсы, которые я хочу agent, admin & superadmin
иметь доступ к.
Как мне сделать это сухим способом?
1 ответ
Почему вы проверяете роли, а не проверяете права доступа? Как я знаю поддержку cancan can?
а также cannot?
методы, которые могут помочь в вашей ситуации. Вы должны написать что-то вроде этого
<%= link_to "Create New User", new_user_registration_path if can?(:create, User) %>