From d4ae20b30049a5b32f397d2f058a4aaeb76063ef Mon Sep 17 00:00:00 2001 From: Schalli Date: Tue, 4 Aug 2026 11:59:50 +0200 Subject: [PATCH] docs(15): add PERM-01..07 requirements and widget success criterion --- .planning/REQUIREMENTS.md | 28 ++++++++++++++++++++++++++-- .planning/ROADMAP.md | 5 +++-- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/.planning/REQUIREMENTS.md b/.planning/REQUIREMENTS.md index 8dd3b48..fe5c0e1 100644 --- a/.planning/REQUIREMENTS.md +++ b/.planning/REQUIREMENTS.md @@ -1,4 +1,4 @@ -# Requirements — Milestone v1.1: Ausschreibungs-Radar +# Requirements — Milestone v1.1: Ausschreibungs-Radar + v1.2: Plattform-Berechtigungen **Module:** Ausschreibungs-Radar — durchsucht deutsche Vergabeportale nach Ausschreibungen, filtert nach Kriterien, zeigt Treffer im Portal an und versendet optional per E-Mail. **Basis-Research:** `.planning/research/SUMMARY.md`, `.planning/research/ausschreibungs-portale-feasibility.md` @@ -55,6 +55,22 @@ - [x] **CONFIG-02**: Admin verwaltet Quellen-Poll-Konfiguration sowie das E-Mail-Ingestion-Postfach pro Mandant (Zugangsdaten verschlüsselt gespeichert). - [x] **CONFIG-03**: Die gesamte Modul-UI ist mehrsprachig (Deutsch + Englisch, i18n). +## v1.2 Requirements + +**Milestone:** v1.2 Plattform-Berechtigungen — Modulzugriff nicht mehr nur pro Mandant, sondern zusätzlich pro Gruppe und pro Benutzer. +**Defined:** 2026-08-04 +**Kontext:** `.planning/phases/15-modul-berechtigungen-gruppen-user-grants/15-CONTEXT.md` (D-01 bis D-23) + +### PERM — Modul-Berechtigungen + +- [ ] **PERM-01**: Admin verwaltet Gruppen pro Mandant (anlegen, umbenennen, löschen) und weist Benutzer manuell zu oder entfernt sie. Beim Löschen einer belegten Gruppe warnt ein Dialog mit Mitglieder- und Freigabenanzahl, bevor Mitgliedschaften und Freigaben mitgelöscht werden. +- [ ] **PERM-02**: Eine Gruppe kann optional an einen AD-Gruppen-DN gebunden werden, ausgewählt aus der bestehenden LDAP-Gruppensuche. Der Benutzer-Sync liest `memberOf` mit und pflegt daraus die Mitgliedschaften; verlässt ein Benutzer die AD-Gruppe, fällt nur seine LDAP-Mitgliedschaft weg — manuell gesetzte bleiben bestehen. +- [ ] **PERM-03**: Admin gibt ein mandantenweit aktives Modul gezielt für Gruppen und für einzelne Benutzer frei und entzieht Freigaben wieder. Gruppenfreigaben werden in einer Matrix Module × Gruppen gepflegt, Einzelfreigaben im Benutzer-Detail samt Anzeige der über Gruppen geerbten Rechte. +- [ ] **PERM-04**: Ohne Freigabe hat ein USER keinen Zugriff: das Modul fehlt in der Sidebar, die Modulseite antwortet mit einer 403-Seite samt Hinweis, und die Modul-API antwortet mit 403. Sidebar, Modulseite und API nutzen dieselbe Zugriffsauflösung. +- [ ] **PERM-05**: ADMIN und SUPER_ADMIN sehen und nutzen innerhalb ihres Mandanten alle aktiven Module ohne Freigabe. +- [ ] **PERM-06**: Die Migration überführt den Bestand ohne Zugriffsverlust: pro Mandant entsteht eine als Standardgruppe markierte Gruppe mit allen bestehenden Benutzern und Freigaben für alle zum Migrationszeitpunkt aktiven Module. Neue Benutzer — manuell angelegt wie per LDAP importiert — treten der markierten Standardgruppe automatisch bei. +- [ ] **PERM-07**: Ein Dashboard-Widget, dessen Modul dem Benutzer nicht freigegeben ist, erscheint nicht auf seinem Dashboard. + ## Future Requirements (deferred) - [ ] TED API v3 (EU-weite Redundanz) — für DE-only weitgehend redundant zu DÖE. @@ -106,4 +122,12 @@ | CONFIG-03 | Phase 14 | Complete | | UI-06 | Phase 14 | Complete | -**Coverage:** 29/29 v1.1 requirements mapped — no orphans. +| PERM-01 | Phase 15 | Pending | +| PERM-02 | Phase 15 | Pending | +| PERM-03 | Phase 15 | Pending | +| PERM-04 | Phase 15 | Pending | +| PERM-05 | Phase 15 | Pending | +| PERM-06 | Phase 15 | Pending | +| PERM-07 | Phase 15 | Pending | + +**Coverage:** 29/29 v1.1 requirements mapped — no orphans. 7/7 v1.2 requirements mapped auf Phase 15. diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index e61abf9..d1aca57 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -491,7 +491,7 @@ Plans: **Goal:** Modulzugriff wird zweistufig: die bestehende Mandanten-Aktivierung bleibt Voraussetzung, darüber hinaus entscheiden Freigaben pro Gruppe und pro einzelnem Benutzer, wer ein Modul sieht und dessen API nutzen darf. Admins verwalten Gruppen (optional an eine AD-Gruppe gebunden) und eine Freigabe-Matrix pro Modul im Admin-UI. **Depends on**: Phase 14 -**Requirements**: TBD (werden in /gsd-plan-phase 15 vergeben) +**Requirements**: PERM-01, PERM-02, PERM-03, PERM-04, PERM-05, PERM-06, PERM-07 **Success Criteria** (what must be TRUE): 1. Ein Admin kann im Admin-UI Gruppen anlegen, umbenennen und löschen sowie Benutzer manuell zuweisen und entfernen @@ -499,7 +499,8 @@ Plans: 3. Ein Admin kann ein mandantenweit aktives Modul gezielt für Gruppen und/oder einzelne Benutzer freigeben und die Freigabe wieder entziehen 4. Ohne Freigabe hat ein USER keinen Zugriff: das Modul fehlt in der Sidebar, die Modulseite ist gesperrt und die Modul-API antwortet mit 403 — Sidebar und API nutzen dieselbe Zugriffsauflösung 5. ADMIN und SUPER_ADMIN sehen und nutzen innerhalb ihres Mandanten alle aktiven Module ohne Freigabe - 6. Nach der Migration hat kein bestehender Benutzer Zugriff verloren: pro Mandant existiert eine Gruppe „Alle Benutzer" mit allen Bestandsbenutzern und Freigaben für alle zum Migrationszeitpunkt aktiven Module + 6. Nach der Migration hat kein bestehender Benutzer Zugriff verloren: pro Mandant existiert eine als Standardgruppe markierte Gruppe „Alle Benutzer" mit allen Bestandsbenutzern und Freigaben für alle zum Migrationszeitpunkt aktiven Module + 7. Ein Dashboard-Widget, dessen Modul dem Benutzer nicht freigegeben ist, erscheint nicht auf seinem Dashboard **Design-Entscheidungen** (mit User geklärt am 2026-08-04):