Как проверить минимальные разрешения и разрешить СУХОЕ разрешение для всех родительских ролей?

Скажем, у меня есть 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) %>

Полезная ссылка об этой функции

Другие вопросы по тегам