feat: add durable QEMU create update delete

This commit is contained in:
Sergey Antropoff
2026-07-13 01:54:04 +03:00
parent 7721ba87c5
commit 701157f570
15 changed files with 659 additions and 26 deletions
+7 -2
View File
@@ -57,17 +57,19 @@ def authorize(
entries: tuple[AclEntry, ...],
*,
token_privileges: frozenset[str] | None = None,
require_all: bool = True,
) -> bool:
privileges = effective_privileges(principal, path, entries)
if token_privileges is not None:
privileges &= token_privileges
return required <= privileges
return required <= privileges if require_all else bool(required & privileges)
@dataclass(frozen=True, slots=True)
class CapabilityRequirement:
path: str
privileges: frozenset[str]
require_all: bool = True
def requirement_from_contract(
@@ -84,4 +86,7 @@ def requirement_from_contract(
raw_privileges = check[2]
if not isinstance(raw_privileges, list):
return None
return CapabilityRequirement(raw_path, frozenset(str(item) for item in raw_privileges))
require_all = not (len(check) >= 4 and check[3] == "any")
return CapabilityRequirement(
raw_path, frozenset(str(item) for item in raw_privileges), require_all
)