X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=acl.py;h=2b347673af1b14dbb144ca9179d115a5eba642b0;hb=eb9e6df32ed696158bf34dba6464277b648f5c74;hp=f810b418e635b1ca4dcbdc6df8f894764d92b8c8;hpb=05a26ae305adfc47f38b8534ec8f35640df3955e;p=python_utils.git diff --git a/acl.py b/acl.py index f810b41..2b34767 100644 --- a/acl.py +++ b/acl.py @@ -7,6 +7,8 @@ import logging import re from typing import Any, Callable, List, Optional, Set, Sequence +from overrides import overrides + # This module is commonly used by others in here and should avoid # taking any unnecessary dependencies back on them. @@ -93,11 +95,13 @@ class SetBasedACL(SimpleACL): self.allow_set = allow_set self.deny_set = deny_set + @overrides def check_allowed(self, x: Any) -> bool: if self.allow_set is None: return False return x in self.allow_set + @overrides def check_denied(self, x: Any) -> bool: if self.deny_set is None: return False @@ -158,11 +162,13 @@ class PredicateListBasedACL(SimpleACL): self.allow_predicate_list = allow_predicate_list self.deny_predicate_list = deny_predicate_list + @overrides def check_allowed(self, x: Any) -> bool: if self.allow_predicate_list is None: return False return any(predicate(x) for predicate in self.allow_predicate_list) + @overrides def check_denied(self, x: Any) -> bool: if self.deny_predicate_list is None: return False @@ -242,11 +248,13 @@ class AnyCompoundACL(SimpleACL): ) self.subacls = subacls + @overrides def check_allowed(self, x: Any) -> bool: if self.subacls is None: return False return any(acl(x) for acl in self.subacls) + @overrides def check_denied(self, x: Any) -> bool: if self.subacls is None: return False @@ -266,11 +274,13 @@ class AllCompoundACL(SimpleACL): ) self.subacls = subacls + @overrides def check_allowed(self, x: Any) -> bool: if self.subacls is None: return False return all(acl(x) for acl in self.subacls) + @overrides def check_denied(self, x: Any) -> bool: if self.subacls is None: return False