gpt4 book ai didi

sql - 如何实现类似 highrise 或 facebook 的权限系统

转载 作者:IT老高 更新时间:2023-10-28 13:28:54 25 4
gpt4 key购买 nike

嘿,我希望实现一个权限系统,如 highrise或 Facebook 。

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

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

编辑:我最终写了一个与 mongoid 一起工作的 gem,你可以阅读更多关于它的信息 here

最佳答案

@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,看看这种类型的细节是否不适合插件。

关于sql - 如何实现类似 highrise 或 facebook 的权限系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4716758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com