Я использую rollify, CanCanCan и разрабатываю.Rolify + CanCanCan: запретить пользователю «admin» изменять/создавать «superadmin»
У меня есть 3 типа пользователей: - SuperAdmin - Администратор - Нормальный
Я хочу, чтобы предотвратить «Admin» пользователей, чтобы изменить пользователя на «суперамин» роль или создать/изменить пользователя с «SuperAdmin "роль.
Каков наилучший способ сделать это? В классе умения или с каким-либо предшествующим фильтром?
Вот мой файл Возможность упрощен только пользовательская часть:
class Ability
include CanCan::Ability
def initialize(user)
alias_action :create, :read, :update, :destroy, :to => :crud
user ||= User.new # guest user (not logged in)
if user.has_role? :normal
can :read, User
elsif user.has_role? :admin
can :crud, User
elsif user.has_role? :superadmin
can :manage, :all
else
cannot :manage, :all
end
end
end