- Neue ldap_fileshare_mappings-Tabelle (AD-Gruppe -> Freigabe-UNC+Label),
verwaltet in Einstellungen -> LDAP wie die bestehende App-Gruppenzuordnung
(inkl. AD-Gruppen-Dropdown per "Gruppen laden", UNC-Backslash/Slash-
Normalisierung).
- Login-Gate: optionale "Erforderliche AD-Gruppe fuer Login" (Dropdown,
gleiches Lade-Muster) -- ohne Mitgliedschaft scheitert der Login wie bei
falschen Zugangsdaten, ohne Hinweis auf den eigentlichen Grund.
- Sessionabhaengiges Mounten: beim LDAP-Login werden alle per AD-Gruppe
zugeordneten Freigaben mit den eigenen (nie gespeicherten) Zugangsdaten
per mount.cifs unter /mnt/tesm-shares/<session-token>/ gemountet, beim
Logout wieder ausgehaengt. Passwort läuft ausschliesslich ueber die
PASSWD-Umgebungsvariable von mount.cifs. Aufraeum-Sweep (30 Min-Takt,
12h-Schwelle) und Cleanup-on-Startup als Sicherheitsnetz.
- Zwei unabhaengige Gates: TESM-Rechtesystem (fileshare.view/.create/.edit,
neue PERMISSIONS-Gruppe fileshare_group) UND AD-Gruppenmitgliedschaft
muessen beide zutreffen, sonst wird nicht gemountet und der Menuepunkt
"Dateifreigaben" bleibt verborgen.
- Neuer Dateibrowser (/fileshare, .../download, .../upload, .../mkdir,
.../delete, .../rename) mit Breadcrumbs, Upload/Download, Anlegen/
Umbenennen/Loeschen -- Pfadaufloesung ausschliesslich ueber
os.path.realpath-Vergleich gegen die eigene Mount-Root (Path-Traversal-
Schutz), zusaetzlich secure_filename() fuer Datei-/Ordnernamen.
- KRITISCHER Bugfix waehrend Live-Test gefunden: generate_ips.py importiert
app.py als Hilfsmodul (u.a. aus poe.sh/tesm-check.service heraus, alle
paar Sekunden) -- das fuehrte Modul-Level-Code erneut aus und hat aktive
Fileshare-Mounts anderer Sitzungen sofort wieder ausgehaengt. Neues
TESM_WEB_PROCESS-Env-Flag (nur in tesm.service gesetzt) schuetzt
Cleanup-on-Startup und den Sweep-Thread davor, bei einem reinen
Modul-Import erneut zu laufen.
- install.sh: cifs-utils ergaenzt (liefert mount.cifs).
- SCHEMA_VERSION 1 -> 2, VERSION 1.0.10 -> 1.1.0.
Live auf Testbox (192.168.82.51) und POETEST (192.168.80.202) getestet:
Login-Gate (erlauben/verbieten/reset), Rechte-Gate (Mount+Menuepunkt nur
mit fileshare.view), vollstaendiger Datei-Workflow (Upload/Download/
Umbenennen/Anlegen/Loeschen) gegen eine echte SMB-Freigabe, Path-Traversal
gegen alle 5 Routen (serverseitig verifiziert, kein Escape), sauberes
Unmount bei /logout.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>