首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何实现像highrise或facebook这样的权限系统

如何实现像highrise或facebook这样的权限系统
EN

Stack Overflow用户
提问于 2011-01-18 02:58:21
回答 3查看 612关注 0票数 6

嘿,我希望实现一个类似于highrise或facebook的权限系统。

这种问题的问题是,必须在对象的实例上定义权限(可见性)。在我的脑海中,我可以想到为每一条记录保存user_ids或group_ids。这是最好的方法吗?

我正在使用mongodb,所以这应该会让它更容易。虽然我们也可以切换到sql (highrise很可能用sql实现)。

编辑:我最终写了一个使用mongoid的gem,你可以阅读更多关于它的here

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-19 03:44:58

@Abhishiv:考虑到这个任务,我会实现某种形式的约定来设置字段的访问权限。

给定一个如下所示的对象:

代码语言:javascript
复制
{
  name : "me",
  user : "me01234",
  salary : "100",
  address : "123 Nowhere drive"
}

我会通过这样做来添加权限:

代码语言:javascript
复制
{
  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' ]
}

使用这样的约定,您可以维护文档级访问权限。而且很容易看到如何编写这样的东西。

现在,您通常需要对象和集合本身的访问权限。这让整个过程变得更加干燥。对于这样的事情,我会简单地构建一个" permissions“集合,其中包含DB中每个其他集合的默认权限。

在我的脑海中,我不知道有任何框架可以“开箱即用”地做这件事。我会看一下Mongoid和MongoMapper,看看这种类型的细节是否不适合插件。

票数 2
EN

Stack Overflow用户

发布于 2011-01-18 03:38:22

票数 1
EN

Stack Overflow用户

发布于 2011-01-18 05:05:34

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4716758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档