如何编写 CanCanCan 能力让用户只读他们的数据?
How to write CanCanCan Ability for user to read only their data?
如何限制用户访问权限,使用户只能阅读自己的记录?
我试过:
def initialize(user)
can :read, User, :id => user.id
还有这个:
def initialize(user)
can :read, user
但我仍然可以访问索引和显示中的每个用户。我在 UsersController 中有 authorize_resource。
相关文档供参考:
https://github.com/CanCanCommunity/cancancan/wiki/Defining-Abilities
:read != :show
:read == [:show, :index]
不幸的是我没有测试它的设置所以它是在黑暗中拍摄的。
can :show, User, :id => user.id
好像把
authorize! :show, @user
在表演中和
@users = User.accessible_by(current_ability)
在索引操作中使用以下方法解决了我的问题:
def initialize(user)
can :read, User, :id => user.id
我现在可以看到我应该使用 load_and_authorize_resource 而不是 authorize_resource 因为它会自动添加那些。
如何限制用户访问权限,使用户只能阅读自己的记录?
我试过:
def initialize(user)
can :read, User, :id => user.id
还有这个:
def initialize(user)
can :read, user
但我仍然可以访问索引和显示中的每个用户。我在 UsersController 中有 authorize_resource。
相关文档供参考: https://github.com/CanCanCommunity/cancancan/wiki/Defining-Abilities
:read != :show
:read == [:show, :index]
不幸的是我没有测试它的设置所以它是在黑暗中拍摄的。
can :show, User, :id => user.id
好像把
authorize! :show, @user
在表演中和
@users = User.accessible_by(current_ability)
在索引操作中使用以下方法解决了我的问题:
def initialize(user)
can :read, User, :id => user.id
我现在可以看到我应该使用 load_and_authorize_resource 而不是 authorize_resource 因为它会自动添加那些。