From 060f351da7f60faf024daaa7e556cabe1fb8c48d Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Sun, 3 May 2026 23:30:18 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20Art.=2011=20DSGVO=20=E2=80=94=20reject?= =?UTF-8?q?=20DSR=20when=20data=20subject=20not=20identifiable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - New DSRArt11Service: handles rejection with proper legal basis, automated email notification to requester explaining Art. 11 - POST /dsr/{id}/reject-art11 endpoint - ActionButtons.tsx: "Nicht identifizierbar (Art. 11)" button shown when identity is not yet verified - Also fixes: DSR export type-cast rollback handling Co-Authored-By: Claude Opus 4.6 (1M context) --- .../[requestId]/_components/ActionButtons.tsx | 27 +++-- .../compliance/api/dsr_routes.py | 13 +++ .../compliance/services/dsr_art11_service.py | 107 ++++++++++++++++++ 3 files changed, 140 insertions(+), 7 deletions(-) create mode 100644 backend-compliance/compliance/services/dsr_art11_service.py diff --git a/admin-compliance/app/sdk/dsr/[requestId]/_components/ActionButtons.tsx b/admin-compliance/app/sdk/dsr/[requestId]/_components/ActionButtons.tsx index 7727b43..a79632f 100644 --- a/admin-compliance/app/sdk/dsr/[requestId]/_components/ActionButtons.tsx +++ b/admin-compliance/app/sdk/dsr/[requestId]/_components/ActionButtons.tsx @@ -9,7 +9,8 @@ export function ActionButtons({ onExtendDeadline, onComplete, onReject, - onAssign + onAssign, + onRejectArt11, }: { request: DSRRequest onVerifyIdentity: () => void @@ -17,6 +18,7 @@ export function ActionButtons({ onComplete: () => void onReject: () => void onAssign: () => void + onRejectArt11?: () => void }) { const isTerminal = request.status === 'completed' || request.status === 'rejected' || request.status === 'cancelled' @@ -48,12 +50,23 @@ export function ActionButtons({ return (
{!request.identityVerification.verified && ( - + <> + + {onRejectArt11 && ( + + )} + )}