使用django-rules进行属性级访问控制?

时间:2018-06-22 04:52:23

标签: django

在我的django应用程序中,我有一个名为Client的模型,其中包含有关我的企业客户的信息。我有两组使用我的应用程序的员工-技术人员和财务人员。

技术人员可以查看/更新客户端的属性,例如“密码哈希”,“登录IP地址”。财务会员可以查看/更新“ total_revenue”或“ bank_account_number”之类的属性。

我在文档中看到Predicates can be created from any callable that accepts anything from zero to two positional arguments

是否可以将其扩展为三个位置参数?我有兴趣执行以下操作:

@rules.predicate
def can_view_attribute(user, model, attribute):

如果以上情况均不可行,我计划为其属性的每个Client类生成一个规则。规则生成将在我的应用程序的初始化阶段进行。

@rules.predicate
def can_view_client_attribute(user, attribute):
  • 这种方法是否有缺点?
  • 有人曾尝试过这种方法吗?

0 个答案:

没有答案