class RequiresAll(Permission):
def allows(self, identity):
if not has_all(self.needs, identity.provides):
return False
if self.excludes and self.excludes.intersection(identity.provides):
return False
return True
def has_all(needed=None, provided=None):
if needed is None:
return True
if provided is None:
provided = set()
shared = needed.intersection(provided)
return shared == needed
按照目前的情况,使用
OR
检查组合权限的需要。引自the documentation:如果您想要一个} method 来检查集合的交集是否与权限的需要相同:
AND
,只需将Permission
类子类并重写the ^{相关问题 更多 >
编程相关推荐