62 lines
1.5 KiB
Python
62 lines
1.5 KiB
Python
from __future__ import annotations
|
|
|
|
from collections.abc import Sequence
|
|
|
|
from govoplan_core.core.dsar import (
|
|
DsarErasureActionRef,
|
|
DsarExecutionResultRef,
|
|
DsarRecordRef,
|
|
DsarSubjectRef,
|
|
dsar_capability_name,
|
|
)
|
|
|
|
|
|
ADMIN_DSAR_CAPABILITY = dsar_capability_name("admin")
|
|
|
|
|
|
class AdminDsarProvider:
|
|
"""Declare the reviewed absence of subject data in Admin-owned tables."""
|
|
|
|
provider_id = "admin"
|
|
module_id = "admin"
|
|
|
|
def search_subject(
|
|
self,
|
|
session: object,
|
|
*,
|
|
tenant_id: str,
|
|
subject: DsarSubjectRef,
|
|
) -> Sequence[DsarRecordRef]:
|
|
del session, tenant_id, subject
|
|
return ()
|
|
|
|
def plan_erasure(
|
|
self,
|
|
session: object,
|
|
*,
|
|
tenant_id: str,
|
|
subject: DsarSubjectRef,
|
|
records: Sequence[DsarRecordRef],
|
|
) -> Sequence[DsarErasureActionRef]:
|
|
del session, tenant_id, subject
|
|
if records:
|
|
raise ValueError("Admin DSAR cannot plan records it does not own.")
|
|
return ()
|
|
|
|
def execute_erasure(
|
|
self,
|
|
session: object,
|
|
*,
|
|
tenant_id: str,
|
|
subject: DsarSubjectRef,
|
|
actions: Sequence[DsarErasureActionRef],
|
|
request_id: str,
|
|
) -> Sequence[DsarExecutionResultRef]:
|
|
del session, tenant_id, subject, request_id
|
|
if actions:
|
|
raise ValueError("Admin DSAR cannot execute actions it does not own.")
|
|
return ()
|
|
|
|
|
|
__all__ = ["ADMIN_DSAR_CAPABILITY", "AdminDsarProvider"]
|