Rails ACL 使用修改后的先序树遍历
Posted
技术标签:
【中文标题】Rails ACL 使用修改后的先序树遍历【英文标题】:Rails ACL Using Modified Preorder Tree Traversal 【发布时间】:2011-12-19 15:19:00 【问题描述】:是否有使用 MPTT(修改前序树遍历)作为管理权限的技术的 Rails ACL 插件/gem?
我正在寻找允许我创建角色、将用户分配给一个或多个角色、在角色级别和用户级别设置权限的 ACL。
我们目前使用 Cakephp,内置 ACL 是使用 Tree 行为(即 MPTT)构建的。我读过Rails 有acts_as_nested_set,它是MPTT。是否有任何使用acts_as_nested_set 的ACL 插件/gem?
最重要的是用户和角色权限可通过 GUI 进行编辑(保留在数据库中)。
【问题讨论】:
花了几天时间搜索,找不到用于实现权限树的 gem。打算从头开始做,但不能保证它会是一颗宝石。 【参考方案1】:Ruby Gem ** ActiveAclPlus ** 似乎可以满足您的需求:
https://github.com/pschrammel/active_acl_plus
ActiveAclPlus 系统由访问对象组成,这些访问对象可以按访问组进行组织,它们相互请求权限。允许或拒绝访问权限由 ACL(访问控制列表条目)对象控制。访问对象和访问组可以是由acts_as_access_object 和acts_as_access_group 增强的任意ActiveRecord 模型类的实例。它们通过多态关联与 ACL 条目相关联。
我个人喜欢 Declarative Authorization Gem 很多 - 但这不会进行树遍历,但它至少允许从其他规则继承
【讨论】:
4 年没有新的提交。这颗宝石太旧了。 是的。对我没用。我从头开始实现了类似树的权限。结合传统的普通方法,它会产生良好的效果。 你打算把它变成宝石吗? 还没有。我没有这么多空闲时间。 这很简单,参见 Railscasts.com 第 303 和 301 集以上是关于Rails ACL 使用修改后的先序树遍历的主要内容,如果未能解决你的问题,请参考以下文章