我有以下问题。有一个权限列表(假设从“ a”到“ z”)。每个用户都有这些权限的子集。
假设我们还有另一个列表,
perms_list = [a, c, d]
我想检查用户是否具有perms_list中的至少一项权限。
user.has_perms(perms_list)
检查用户是否具有所有权限,因此,我不能使用它。(我也不能使用has_module_perms,因为在我的情况下,权限具有相同的模块)
另一种方法是将其放入for循环中
for p in perms_list:
if user.has_perm(p):
# do_something
有更有效的方法吗?
作为对此问题的扩展,是否可以采用通用的方式来做到这一点?例如,用户应具有(perm1和perm2)或perm3
if set(user.get_all_permissions()) & set(perms_list):
pass
对于扩展
a=[53,6]
b=[[53],[2,4,5]]
if any((set(x).issubset(a)) for x in b):
print(23)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句