嘿我想要实现像highrise或facebook这样的权限系统。
此类问题的问题是必须在对象的实例(可见性)上定义权限。在我的脑海中,我可以考虑在每个记录的哈希中保存user_ids或group_ids。这是最好的方法吗?
我正在使用mongodb,因此应该更容易。虽然我们也可以切换到sql(高层可能会用sql)。
编辑:我最终写了一个与mongoid一起工作的宝石,你可以阅读更多关于它的信息here
答案 0 :(得分:2)
@Abhishiv:鉴于此任务,我将实现某种形式的约定,以便按字段设置访问权限。
给出如下对象:
{
name : "me",
user : "me01234",
salary : "100",
address : "123 Nowhere drive"
}
我会通过这样的方式添加权限:
{
name : "me",
user : "me01234",
salary : "100",
address : "123 Nowhere drive"
p_salary : [ 'g/accounting', 'g/management', 'u/owner' ]
p_address : [ 'g/accounting', 'g/hr', 'u/me' ]
}
使用这样的约定,您可以维护文档级访问权限。而且很容易看出如何编程这样的东西。
现在,您通常需要对对象和集合本身的访问权限。这使整个过程更加干燥。对于这样的事情,我只需构建一个“权限”集合,其中包含数据库中每个其他集合的默认权限。
在我的头顶上,我不知道任何“开箱即用”的框架。我会看看Mongoid和MongoMapper,看看这种类型的细节是否适合插件。
答案 1 :(得分:1)
答案 2 :(得分:1)