docs(15): WINDOWS #10 geschlossen — Browser-Gegenprobe nach dem Fix bestanden
Der am Vormittag gefundene Zugriffs-Guard-Defekt ist behoben (260907-e8k) und im echten Browser gegen ein frisch gebautes Web-Image nachgeprueft. nutzer2 ohne Freigabe bekommt jetzt auf /modules/tender-radar, dessen Unterseiten my-sources und settings sowie auf /modules/dkv-fleet die 403-Seite als Serverantwort. Auf /modules/cert-manager, wo er eine Freigabe hat, kommt er weiterhin durch — das ist die Gegenprobe dagegen, dass die Sperre zu weit greift. admin sieht alle vier Adressen unveraendert, nutzer1 sieht Meine Quellen mit allen drei Abschnitten; die Phase-17-Funktion ist unbeschaedigt. Im Bericht zusaetzlich festgehalten, dass ein erster Messversuch per fetch() aus der laufenden Seite heraus faelschlich alle Seiten als gesperrt meldete, auch fuer den Administrator. Der Aufruf fuehrt die Sitzung nicht wie eine echte Navigation mit. Alle berichteten Zahlen stammen aus echten Seitenaufrufen. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K5jtbGzC5Sf9npJ3JCjKhq
This commit is contained in:
@@ -4,7 +4,8 @@ kind: uat-nachtrag
|
||||
date: 2026-09-07
|
||||
windows_addressed: [1, 2, 3]
|
||||
windows_opened: [10]
|
||||
result: 2 von 3 bestanden, 1 mit Befund
|
||||
windows_closed_later: [10]
|
||||
result: 2 von 3 bestanden, 1 mit Befund — Befund am selben Tag behoben und gegengeprueft
|
||||
---
|
||||
|
||||
# Phase 15 — Browser-Gegenproben, nachgeholt am 2026-09-07
|
||||
@@ -119,11 +120,36 @@ Diese laufen am Guard vorbei. Im Browser als `nutzer2` **ohne** Freigabe gemesse
|
||||
|
||||
Beleg: `uat-2026-09-07/befund-modul-eigene-route-ohne-freigabe.png`
|
||||
|
||||
**Erwartete Behebung:** Die Zugriffsprüfung gehört in ein gemeinsames Layout über
|
||||
allen Modulrouten (etwa `(portal)/modules/layout.tsx` mit Auflösung des Modul-Slugs
|
||||
aus dem Pfad) statt in die einzelne Seitenkomponente der generischen Route.
|
||||
**Behoben am 2026-09-07** (Quick-Task `260907-e8k`, Commits `4a23e13`, `69b6418`).
|
||||
Umgesetzt wurde nicht ein einzelnes Layout mit Pfadauflösung, sondern je ein `layout.tsx`
|
||||
pro Modulverzeichnis mit fest eingetragenem Slug — ein Layout deckt in Next.js alle
|
||||
verschachtelten Unterrouten automatisch mit ab, und der Slug steht damit explizit im Code
|
||||
statt aus dem Pfad geraten zu werden. Das 403-Markup liegt jetzt einmal als gemeinsame
|
||||
Komponente vor, die generische Route nutzt dieselbe. Ein Test liest das Modulverzeichnis
|
||||
aus und verlangt für jedes nicht-dynamische Unterverzeichnis eine `layout.tsx`, damit ein
|
||||
künftiges Modul die Lücke nicht erneut aufreißt.
|
||||
|
||||
### Gegenprobe im Browser nach dem Fix (2026-09-07)
|
||||
|
||||
Frisch gebautes Web-Image, echter Chrome, dieselben Konten:
|
||||
|
||||
| Konto | Adresse | Ergebnis |
|
||||
|---|---|---|
|
||||
| `admin` (SUPER_ADMIN) | `/modules/tender-radar`, `/modules/tender-radar/my-sources`, `/modules/dkv-fleet`, `/modules/procurement/tender-radar` | alle **unverändert offen** — die Sperre trifft niemanden zu viel |
|
||||
| `nutzer1` (Freigabe über Gruppe) | `/modules/tender-radar/my-sources` | offen, alle drei Abschnitte da — Phase-17-Funktion unbeschädigt |
|
||||
| `nutzer2` (keine Freigabe) | `/modules/tender-radar`, `/modules/tender-radar/my-sources`, `/modules/tender-radar/settings`, `/modules/dkv-fleet` | alle **gesperrt**, 403-Seite als Serverantwort |
|
||||
| `nutzer2` auf `/modules/cert-manager` (dort **hat** er eine Freigabe) | | **offen** — die Gegenprobe gegen Überschießen |
|
||||
|
||||
Beleg: `uat-2026-09-07/w10-fix-my-sources-gesperrt.png`
|
||||
|
||||
**Messhinweis für spätere Prüfungen:** Ein erster Versuch, die Adressen per `fetch()` aus der
|
||||
laufenden Seite heraus zu prüfen, meldete fälschlich *alle* Seiten als gesperrt — auch für den
|
||||
Administrator. Der Aufruf führt die Sitzung nicht so mit, wie eine echte Navigation es tut. Die
|
||||
Zahlen oben stammen ausschließlich aus echten Seitenaufrufen. Wer das nachprüft, sollte nicht
|
||||
per `fetch` messen.
|
||||
|
||||
## Ergebnis
|
||||
|
||||
WINDOWS #1 und #2 sind geschlossen. #3 ist als Durchlauf erledigt; der dabei
|
||||
gefundene Defekt ist als #10 eigenständig erfasst und bleibt offen.
|
||||
WINDOWS #1 und #2 sind geschlossen. #3 ist als Durchlauf erledigt. Der dabei gefundene
|
||||
Defekt wurde als #10 erfasst, am selben Tag behoben und im Browser gegengeprüft — er ist
|
||||
damit ebenfalls geschlossen.
|
||||
|
||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 34 KiB |
Reference in New Issue
Block a user