0
def initialize(user)
 if user.has_role? :admin
  can :manage, :all
  can :destroy, User
  can [:update , :destroy], [Article, Comment]
 else
  can :read, :all
 end

管理者のみがユーザーを削除し、自分自身を削除できないようにする方法は?

私は wice_grid gem を使用しており、これをビューに追加しましたが、それでも管理者は自分自身を削除できます

g.column do |user|
 if can? :destroy, @user && !current_user(user)
  link_to('Delete', user, method: :delete, data: { confirm: 'You sure?' })
 end
end
4

3 に答える 3

1

これについてはAbility-Precedenceを読んでください。ところで、これを行うことができます:

if user.admin?
      can :manage, :all
      cannot :destroy, User, :id => current_user.id
end

ありがとう

于 2013-08-14T08:06:20.640 に答える