【问题标题】:Where/How to store and check specific user limitations? [closed]在哪里/如何存储和检查特定的用户限制? [关闭]
【发布时间】:2020-11-08 03:24:29
【问题描述】:

我有一个标准的用户、组、权限架构,用于向我的用户授予/撤销 CRUD 权限。我有一个 API,它根据用户的查询从模型数据中过滤数据。

我希望能够限制用户发送查询时返回的对象数量。我的问题是我不确定在哪里/如何最好地存储这些信息。

我的基本解决方案是在我的组中添加一个max_rows 列并引用每个请求它简单易管理,但由于用户可以有多个组,我必须确保max_rows 在与用户所属的其他组同步。

有什么改进的想法吗?

【问题讨论】:

    标签: sql django database-design django-rest-framework


    【解决方案1】:

    您不必确保您的最大行数在用户所属的组中同步。

    这样想:超级管理员应该能够获得他/她要求的尽可能多的行,这是无限的。例如,受信任的用户可能有一些适当的限制,例如最多 10 000 行。现在,如果某人同时担任这两个角色,很明显该人应该能够加载他/她想要的任意多的记录,因为他/她是超级管理员,并且该人也受信任这一事实不应削弱他/她超级管理员权限,因此合乎逻辑的方法是:

    select max(max_rows)
    from yourgrouptable
    join yourgroupmappingtable
    on yourgrouptable.id = yourgroupmappingtable.group_id
    where yourgroupmappingtable.user_id = 5;
    

    【讨论】:

      猜你喜欢
      • 2012-03-22
      • 2018-11-30
      • 1970-01-01
      • 1970-01-01
      • 2011-05-01
      • 2013-11-08
      • 2014-02-22
      • 2018-05-14
      • 1970-01-01
      相关资源
      最近更新 更多