Namen bei allen Ausleihen #87

Closed
opened 2026-11-01 09:44:57 +00:00 by Aiirondev · 4 comments
Owner

Von encryptet Namen zurück zu normalen Namen bei der ausleihe Übersicht bei Inventarsystem

Von encryptet Namen zurück zu normalen Namen bei der ausleihe Übersicht bei Inventarsystem
Aiirondev added the Kind/Bug
Reviewed
Confirmed
1
labels 2026-11-01 09:44:57 +00:00
Aiirondev_dev was assigned by Aiirondev 2026-11-01 09:44:57 +00:00
Author
Owner

Ursache

Die Ausleihen speichern den Benutzer inzwischen als MongoDB-User-ID:

Mehrere Anzeige-Stellen behandelten diesen Wert aber weiterhin wie einen verschlüsselten Benutzernamen und riefen nur decrypt_text() auf. Eine User-ID kann dadurch nicht in einen Benutzernamen umgewandelt werden und wurde deshalb direkt angezeigt.

Studenten-Ausweis-IDs bleiben davon getrennt und werden weiterhin über die bestehende Entschlüsselungslogik verarbeitet.

Umsetzung

Ich habe nur die relevanten Bereiche angepasst:

Einen zentralen Resolver für Anzeige-Benutzernamen in Web/app.py:161 ergänzt.
Sucht zuerst nach einem User anhand seiner MongoDB-ID.
Gibt den gespeicherten Benutzernamen zurück.
Unterstützt als Fallback weiterhin alte verschlüsselte Benutzernamen.
Eine tenant-fähige User-ID-Suche in Web/modules/database/user.py:876 ergänzt.
Die relevanten Anzeige- und API-Stellen auf den Resolver umgestellt, unter anderem:
Ausleihübersichten
geplante Buchungen
Logs
Schadens- und Ausleihanzeigen
Benachrichtigungen
Rechnungs-/Bibliotheksansichten
Stornierung einer Ausleihe, damit die Berechtigungsprüfung mit User-IDs funktioniert

Validierung

Keine Syntaxfehler in Web/app.py
Keine Syntaxfehler in Web/modules/database/user.py
git diff --check erfolgreich
Im Repository wurden keine automatisierten Python-Testdateien gefunden
Die Änderung ist bewusst auf Benutzer-Anzeige- und Benutzer-Zuordnungsstellen beschränkt; die Verarbeitung von Schülerausweis-IDs wurde nicht verändert.

## Ursache Die Ausleihen speichern den Benutzer inzwischen als MongoDB-User-ID: Mehrere Anzeige-Stellen behandelten diesen Wert aber weiterhin wie einen verschlüsselten Benutzernamen und riefen nur decrypt_text() auf. Eine User-ID kann dadurch nicht in einen Benutzernamen umgewandelt werden und wurde deshalb direkt angezeigt. Studenten-Ausweis-IDs bleiben davon getrennt und werden weiterhin über die bestehende Entschlüsselungslogik verarbeitet. ## Umsetzung Ich habe nur die relevanten Bereiche angepasst: Einen zentralen Resolver für Anzeige-Benutzernamen in Web/app.py:161 ergänzt. Sucht zuerst nach einem User anhand seiner MongoDB-ID. Gibt den gespeicherten Benutzernamen zurück. Unterstützt als Fallback weiterhin alte verschlüsselte Benutzernamen. Eine tenant-fähige User-ID-Suche in Web/modules/database/user.py:876 ergänzt. Die relevanten Anzeige- und API-Stellen auf den Resolver umgestellt, unter anderem: Ausleihübersichten geplante Buchungen Logs Schadens- und Ausleihanzeigen Benachrichtigungen Rechnungs-/Bibliotheksansichten Stornierung einer Ausleihe, damit die Berechtigungsprüfung mit User-IDs funktioniert ## Validierung Keine Syntaxfehler in Web/app.py Keine Syntaxfehler in Web/modules/database/user.py git diff --check erfolgreich Im Repository wurden keine automatisierten Python-Testdateien gefunden Die Änderung ist bewusst auf Benutzer-Anzeige- und Benutzer-Zuordnungsstellen beschränkt; die Verarbeitung von Schülerausweis-IDs wurde nicht verändert.
Aiirondev added spent time 3 hours 2026-11-01 15:55:10 +00:00
Aiirondev started working 2026-11-01 15:55:12 +00:00
Author
Owner

Commit: 79cf958c3c
PreRelease: v1.1.4-dev.12

Commit: 79cf958c3c97313ba28360c5367b41b0584d48d4 PreRelease: v1.1.4-dev.12
Aiirondev added this to the v1.2.0 milestone 2026-11-01 15:58:15 +00:00
Author
Owner
  1. Bibliotheksverwaltung
    In Web/app.py:3578 wurde die Anzeige bisher nur mit safe_decrypt() verarbeitet. Dadurch blieben verschlüsselte Namen sichtbar.

Jetzt wird dort der zentrale _display_username()-Resolver verwendet. Damit werden folgende Werte korrekt behandelt:

normale User-ID
Bibliotheksausweis-ID über users.StudentCardId
alte verschlüsselte Benutzernamen
alte Ausleihen, die versehentlich die student_cards._id enthalten
2. Alle Ausleihungen
Die Liste unter /admin/borrowings nutzt ebenfalls den erweiterten Resolver. Wenn in einer alten Ausleihe nur die Objekt-ID des Bibliotheksausweises gespeichert ist, wird jetzt:

das student_cards-Dokument über dessen _id gesucht,
daraus die AusweisId gelesen,
der zugehörige User über users.StudentCardId ermittelt,
der Benutzername angezeigt.
Dafür wurde in Web/modules/database/user.py:711 der gezielte Fallback get_user_by_student_card_record_id() ergänzt.

Validierung
Keine Syntaxfehler in Web/app.py
Keine Syntaxfehler in Web/modules/database/user.py
git diff --check erfolgreich
Keine weiteren Stellen gefunden, die in diesen beiden Ansichten noch direkt safe_decrypt(raw_user) für die Benutzeranzeige verwenden

Commit: 1a32a078bc
PreRelease: v1.1.4-dev.14

1. Bibliotheksverwaltung In Web/app.py:3578 wurde die Anzeige bisher nur mit safe_decrypt() verarbeitet. Dadurch blieben verschlüsselte Namen sichtbar. Jetzt wird dort der zentrale _display_username()-Resolver verwendet. Damit werden folgende Werte korrekt behandelt: normale User-ID Bibliotheksausweis-ID über users.StudentCardId alte verschlüsselte Benutzernamen alte Ausleihen, die versehentlich die student_cards._id enthalten 2. Alle Ausleihungen Die Liste unter /admin/borrowings nutzt ebenfalls den erweiterten Resolver. Wenn in einer alten Ausleihe nur die Objekt-ID des Bibliotheksausweises gespeichert ist, wird jetzt: das student_cards-Dokument über dessen _id gesucht, daraus die AusweisId gelesen, der zugehörige User über users.StudentCardId ermittelt, der Benutzername angezeigt. Dafür wurde in Web/modules/database/user.py:711 der gezielte Fallback get_user_by_student_card_record_id() ergänzt. Validierung Keine Syntaxfehler in Web/app.py Keine Syntaxfehler in Web/modules/database/user.py git diff --check erfolgreich Keine weiteren Stellen gefunden, die in diesen beiden Ansichten noch direkt safe_decrypt(raw_user) für die Benutzeranzeige verwenden Commit: 1a32a078bc00ed28ebf15c2abfac5cbb4403a4b2 PreRelease: v1.1.4-dev.14
Aiirondev worked for 21 hours 11 minutes 2026-11-02 13:06:56 +00:00
Author
Owner

Release: v1.1.4

Release: v1.1.4
Aiirondev added spent time 4 hours 2026-11-02 23:36:28 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Total Time Spent: 28 hours 11 minutes
Aiirondev
28 hours 11 minutes
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Invario/Inventarsystem#87