Django 基于表字段内容的权限该怎么实现?

是这样一个场景:

有一批数据,存在一个表中,按其中某一个字段,可以分为三类:a,b,c

不同的用户根据不同的权限,可以访问到不同的数据。

用户1只有a类的权限,只能访问到a类的数据
用户2只有b类的权限,只能访问到b类的数据
用户3有a和b的权限,可以访问a与b类的数据
用户4有a,b,c所有的权限,可以访问a,b,c所有的数据。

并且对于某一条数据,可以判断某用户对它是否有访问权限。

像这个场景,使用django该怎么实现?有什么优雅的办法吗?

阅读 5.5k
2 个回答

这个在于你自己分配吧,可以做一个权限表,然后写一个验证权限的模块,方便每次取数据的时候验证下,不用那么复杂,验证返回True or False就好了。

表示权限的字段用数值表示吧

a b  a+b    c  a+b+c
1 2  1+2=3  4  1+2+4=7

0 没有权限
1,只能访问到a类的数据
2,只能访问到b类的数据
3,可以访问a与b类的数据
7,可以访问a,b,c所有的数据。

或者用位运算,
二进制数每一位上的1代表拥有相应的权限。

0b000
权限:cba
0b001,拥有a的权限
0b010,拥有b的权限
0b011,拥有a、b的权限
依次类推。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题