„Was ist eigentlich mit meinem Notebook passiert?“ fragt heute jemand im Ticket, und ein Techniker
sieht nach. Ein Mitarbeiter soll die Läufe zu seinen Geräten und zu seiner Person selbst
ansehen können — nur lesend.
Woran es hängt
Ein Mitarbeiter ist kein Benutzer. Die Anwendung kennt vier Rollen für Leute, die arbeiten;
ein Mitarbeiter ist Gegenstand der Arbeit, nicht ihr Träger. Es gibt heute keinen Weg, von einer
Anmeldung zu einer Mitarbeiter-Zeile zu kommen.
Zu entscheiden
Anmeldung über OIDC, Zuordnung über den UPN, neue Rolle MITARBEITER — Empfehlung. Das
Haus hat seine Leute ohnehin im Identitätsanbieter; wer sich anmeldet und keiner
Rollengruppe angehört, wird über upn einer Mitarbeiter-Zeile zugeordnet und bekommt genau
ein Recht: selbstauskunft. Benutzer.mitarbeiterId hält die Zuordnung fest.
Die Alternative — ein Link mit Token je Person — braucht keine Anmeldung, aber jeder
weitergeleitete Link ist dann ein Datenleck, und widerrufen müsste man je Person.
Was der Mitarbeiter sieht: Titel, Status, Zeitraum und Gerät eines Laufs. Nicht die
Schritte, nicht die Notizen, nicht die Kommentare, nicht die Anhänge. In einem Lauf stehen
Arbeitsnotizen über Menschen und Zugangsdaten-Platzhalter; eine Selbstauskunft ist keine
Akteneinsicht. Das ist die wichtigste Entscheidung dieses Meilensteins und gehört in die
Anleitung, nicht nur in den Code.
Kein Zugang ohne Zuordnung. Wer sich anmeldet und zu keiner Mitarbeiter-Zeile passt,
bekommt /kein-zugriff mit Begründung — nicht eine leere Seite, die wie ein Fehler aussieht.
Aufgaben
Rolle um MITARBEITER erweitern; RECHTE bekommt selbstauskunft: ["MITARBEITER", …]. Jede Rollenprüfung in tests/rollen.test.ts wächst um eine Spalte — die Matrix ist
ausgeschrieben und nicht berechnet, genau damit das auffällt
Benutzer.mitarbeiterId mit Mandantengrenze als zusammengesetzter Fremdschlüssel
Zuordnung beim Login über upn, unabhängig von Groß- und Kleinschreibung; mehrdeutig ist ein
Fehler und kein Zufallstreffer
Eigene Seite /meine-geraete: meine Geräte, je Gerät die Läufe chronologisch, Titel und Status
Jede Abfrage schränkt auf die eigene Person ein — nicht die Seite. Ein Lesemodell trägt
seine Sicht selbst (CLAUDE.md)
Die Navigation zeigt einem MITARBEITER nur diese Seite; alles andere ist weg, nicht grau
Anleitung: ein eigenes kurzes Kapitel, an Mitarbeiter gerichtet und nicht an Techniker
Akzeptanzkriterien
Test: ein MITARBEITER sieht die Läufe seiner Geräte und keinen anderen
Test: er sieht keine Schritte, Notizen, Kommentare oder Anhänge — geprüft über die Antwort,
nicht über die Seite
Test: er kann nichts schreiben — jede Server Action weist ihn ab (tests/zugang.test.ts
erkennt eine ungeprüfte Aktion ohnehin)
Test: ohne passende Mitarbeiter-Zeile führt die Anmeldung auf /kein-zugriff mit Begründung
Test: ein mehrdeutiger UPN wird abgewiesen und protokolliert
Test: die Rollenmatrix ist vollständig — jede der fünf Rollen gegen jedes Recht
Am Handy kein horizontales Scrollen
Quelle im Repo: docs/issues/035-selbstauskunft.md
## Ziel
„Was ist eigentlich mit meinem Notebook passiert?“ fragt heute jemand im Ticket, und ein Techniker
sieht nach. Ein Mitarbeiter soll die Läufe zu **seinen** Geräten und zu **seiner** Person selbst
ansehen können — nur lesend.
## Woran es hängt
Ein `Mitarbeiter` ist kein `Benutzer`. Die Anwendung kennt vier Rollen für Leute, die **arbeiten**;
ein Mitarbeiter ist Gegenstand der Arbeit, nicht ihr Träger. Es gibt heute keinen Weg, von einer
Anmeldung zu einer `Mitarbeiter`-Zeile zu kommen.
## Zu entscheiden
- [ ] **Anmeldung über OIDC, Zuordnung über den UPN, neue Rolle `MITARBEITER`** — Empfehlung. Das
Haus hat seine Leute ohnehin im Identitätsanbieter; wer sich anmeldet und keiner
Rollengruppe angehört, wird über `upn` einer `Mitarbeiter`-Zeile zugeordnet und bekommt genau
ein Recht: `selbstauskunft`. `Benutzer.mitarbeiterId` hält die Zuordnung fest.
Die Alternative — ein Link mit Token je Person — braucht keine Anmeldung, aber jeder
weitergeleitete Link ist dann ein Datenleck, und widerrufen müsste man je Person.
- [ ] **Was der Mitarbeiter sieht:** Titel, Status, Zeitraum und Gerät eines Laufs. **Nicht** die
Schritte, nicht die Notizen, nicht die Kommentare, nicht die Anhänge. In einem Lauf stehen
Arbeitsnotizen über Menschen und Zugangsdaten-Platzhalter; eine Selbstauskunft ist keine
Akteneinsicht. Das ist die wichtigste Entscheidung dieses Meilensteins und gehört in die
Anleitung, nicht nur in den Code.
- [ ] **Kein Zugang ohne Zuordnung.** Wer sich anmeldet und zu keiner `Mitarbeiter`-Zeile passt,
bekommt `/kein-zugriff` mit Begründung — nicht eine leere Seite, die wie ein Fehler aussieht.
## Aufgaben
- [ ] `Rolle` um `MITARBEITER` erweitern; `RECHTE` bekommt `selbstauskunft: ["MITARBEITER", …]`.
**Jede** Rollenprüfung in `tests/rollen.test.ts` wächst um eine Spalte — die Matrix ist
ausgeschrieben und nicht berechnet, genau damit das auffällt
- [ ] `Benutzer.mitarbeiterId` mit Mandantengrenze als zusammengesetzter Fremdschlüssel
- [ ] Zuordnung beim Login über `upn`, unabhängig von Groß- und Kleinschreibung; mehrdeutig ist ein
Fehler und kein Zufallstreffer
- [ ] Eigene Seite `/meine-geraete`: meine Geräte, je Gerät die Läufe chronologisch, Titel und Status
- [ ] **Jede Abfrage schränkt auf die eigene Person ein** — nicht die Seite. Ein Lesemodell trägt
seine Sicht selbst (CLAUDE.md)
- [ ] Die Navigation zeigt einem `MITARBEITER` nur diese Seite; alles andere ist weg, nicht grau
- [ ] Anleitung: ein eigenes kurzes Kapitel, an Mitarbeiter gerichtet und nicht an Techniker
## Akzeptanzkriterien
- [ ] Test: ein `MITARBEITER` sieht die Läufe seiner Geräte und keinen anderen
- [ ] Test: er sieht **keine** Schritte, Notizen, Kommentare oder Anhänge — geprüft über die Antwort,
nicht über die Seite
- [ ] Test: er kann nichts schreiben — jede Server Action weist ihn ab (`tests/zugang.test.ts`
erkennt eine ungeprüfte Aktion ohnehin)
- [ ] Test: ohne passende `Mitarbeiter`-Zeile führt die Anmeldung auf `/kein-zugriff` mit Begründung
- [ ] Test: ein mehrdeutiger UPN wird abgewiesen und protokolliert
- [ ] Test: die Rollenmatrix ist vollständig — jede der fünf Rollen gegen jedes Recht
- [ ] Am Handy kein horizontales Scrollen
---
Quelle im Repo: `docs/issues/035-selbstauskunft.md`
florian.wilde
added this to the v0.2.0 milestone 2026-10-04 16:19:18 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Ziel
„Was ist eigentlich mit meinem Notebook passiert?“ fragt heute jemand im Ticket, und ein Techniker
sieht nach. Ein Mitarbeiter soll die Läufe zu seinen Geräten und zu seiner Person selbst
ansehen können — nur lesend.
Woran es hängt
Ein
Mitarbeiterist keinBenutzer. Die Anwendung kennt vier Rollen für Leute, die arbeiten;ein Mitarbeiter ist Gegenstand der Arbeit, nicht ihr Träger. Es gibt heute keinen Weg, von einer
Anmeldung zu einer
Mitarbeiter-Zeile zu kommen.Zu entscheiden
MITARBEITER— Empfehlung. DasHaus hat seine Leute ohnehin im Identitätsanbieter; wer sich anmeldet und keiner
Rollengruppe angehört, wird über
upneinerMitarbeiter-Zeile zugeordnet und bekommt genauein Recht:
selbstauskunft.Benutzer.mitarbeiterIdhält die Zuordnung fest.Die Alternative — ein Link mit Token je Person — braucht keine Anmeldung, aber jeder
weitergeleitete Link ist dann ein Datenleck, und widerrufen müsste man je Person.
Schritte, nicht die Notizen, nicht die Kommentare, nicht die Anhänge. In einem Lauf stehen
Arbeitsnotizen über Menschen und Zugangsdaten-Platzhalter; eine Selbstauskunft ist keine
Akteneinsicht. Das ist die wichtigste Entscheidung dieses Meilensteins und gehört in die
Anleitung, nicht nur in den Code.
Mitarbeiter-Zeile passt,bekommt
/kein-zugriffmit Begründung — nicht eine leere Seite, die wie ein Fehler aussieht.Aufgaben
RolleumMITARBEITERerweitern;RECHTEbekommtselbstauskunft: ["MITARBEITER", …].Jede Rollenprüfung in
tests/rollen.test.tswächst um eine Spalte — die Matrix istausgeschrieben und nicht berechnet, genau damit das auffällt
Benutzer.mitarbeiterIdmit Mandantengrenze als zusammengesetzter Fremdschlüsselupn, unabhängig von Groß- und Kleinschreibung; mehrdeutig ist einFehler und kein Zufallstreffer
/meine-geraete: meine Geräte, je Gerät die Läufe chronologisch, Titel und Statusseine Sicht selbst (CLAUDE.md)
MITARBEITERnur diese Seite; alles andere ist weg, nicht grauAkzeptanzkriterien
MITARBEITERsieht die Läufe seiner Geräte und keinen anderennicht über die Seite
tests/zugang.test.tserkennt eine ungeprüfte Aktion ohnehin)
Mitarbeiter-Zeile führt die Anmeldung auf/kein-zugriffmit BegründungQuelle im Repo:
docs/issues/035-selbstauskunft.md