Files
govoplan-admin/src/govoplan_admin/backend/dsar_provider.py
T

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"]