X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=acl.py;h=2b347673af1b14dbb144ca9179d115a5eba642b0;hb=e2b1ec0d293fd3d17854194189ed5ee1c28f705f;hp=f810b418e635b1ca4dcbdc6df8f894764d92b8c8;hpb=8c3fdf110f513719aa31d20c6f837f29c72abb43;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