我正在使用一个已经使用 declarative_authorization 来处理用户权限的 Rails 2.3 应用程序。每个用户属于一个组(没有花哨的角色),对某些模型具有权限,主要是常规的 CRUD 操作,但也有一些特殊的操作。这一切都适用于 declarative_authorization,它通常是开箱即用的模式。
我们现在希望允许管理员针对模型类型设置特定用户组的权限。例如,我们创建一个新组 Foo,为其分配一些用户,然后用复选框决定组 Foo 中的用户是否可以 c/r/u/d 模型 Bar 的对象。
我以前用过acl9,我想我知道我怎么能做到这一点。我最近一直是CanCan的粉丝,但我不明白如何轻松做到这一点。如果 declarative_authorization 可以做到这一点,我会坚持下去,但我准备硬着头皮切换。
什么插件是实现这一目标的最佳方式?有没有办法让 declarative_authorization 完成这项工作?使用 CanCan 的优雅方式?我应该注意什么问题,例如数据库性能?
我可以说服我将应用程序升级到 Rails 3.1,但我更愿意找到与 2.3 兼容的解决方案。
我见过一些类似的问题,但没有令人满意的答案 Rails Dynamic Role-Based Authorization plugin?
而这个,对于cancan https://github.com/ryanb/cancan/wiki/Role-Based-Authorization