Ruby on rails 许可轨道的替代方案?
有人知道放纵的替代品吗?或者其他在功能方面比较好的宝石?我不知道它是否符合“基于模型”的条件,但你看过CanCan吗 编辑: Cancan已经停止了(非官方的),一位贡献者创建了一个名为Cancancan的新项目Ruby on rails 许可轨道的替代方案?,ruby-on-rails,gem,Ruby On Rails,Gem,有人知道放纵的替代品吗?或者其他在功能方面比较好的宝石?我不知道它是否符合“基于模型”的条件,但你看过CanCan吗 编辑: Cancan已经停止了(非官方的),一位贡献者创建了一个名为Cancancan的新项目 如果用户的角色更复杂,我更喜欢声明式授权而不是cancan 使用声明性授权可以定义模型和方法的基于角色的授权 您可以定义模型的权限以及模型中的方法。如果满足某些条件,您可以进一步限制权限,例如,您可以指定仅当对象的某个属性具有特定值时才应用某些权限 下面是一个示例,其中规定普
如果用户的角色更复杂,我更喜欢声明式授权而不是cancan
使用
声明性授权
可以定义模型和方法的基于角色的授权
您可以定义模型的权限以及模型中的方法。如果满足某些条件,您可以进一步限制权限,例如,您可以指定仅当对象的某个属性具有特定值时才应用某些权限
下面是一个示例,其中规定普通用户只能读取和修改其受雇于的公司的帐户(假设帐户以树状方式排列,例如带有“祖先”宝石)
更具体地说,我正在寻找一个基于模型的权限系统。我已经了解了声明式授权。它似乎无法对模型的实例应用权限?如果我错了,请纠正我。只是好奇,为什么你更喜欢声明式授权而不是CanCan?似乎大多数Rails社区都将CanCan作为头号授权宝石。
authorization do
role :user do
# ...
has_permission_on :accounts , :to => [:index, :show, :edit, :update] do
if_attribute :id => is_in { user.employed_at_account.subtree_ids }
end
# ...
end
role :admin do
# ...
has_permission_on :accounts , :to => [:create, :new, :index, :show , :edit, :update ]
# ...
end
end