我有以下问题。有一个权限列表(假设'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
答案 0 :(得分:2)
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)