我正在构建一个内部项目管理软件(ala Basecamp),供我们内部和外部使用。不过,我正在努力寻找执行高级权限的最佳策略。
像 Basecamp 一样,会有很多客户,他们下有很多项目。我希望能够为每个用户分配不同的查看权限给每个客户和项目,这将决定谁可以看到什么。基本上,管理员应该能够说“这个用户可以看到这 4 个项目”,然后当该用户登录时,他们会看到这 4 个项目。
我正在使用 Cancan 获得整体权限,但这似乎无法以我需要的方式分配。我看过 role_model、cantango 等。但找不到一个完全符合我想要做的用例,即使它看起来很标准。
这里有什么见解吗?
谢谢!
编辑:
我显然已经想到只做一个权限表(这里描述:如何为每个项目关联创建一个基本的用户权限?)。我挣扎a)这是最好的方法吗?更重要的是 b)在应用程序中检查权限并仅显示允许的数据的最佳方法是什么?