Ersetzt die handgestrickte bcrypt+Session-Auth durch fastapi-users (CookieTransport+JWTStrategy statt Starlette-Session, custom psycopg3-async-Adapter statt SQLAlchemy). Bestehende bcrypt-Hashes bleiben gültig und werden beim nächsten Login automatisch auf Argon2 angehoben (pwdlib-Default-PasswordHelper). ist_admin wird zu is_superuser, damit fastapi-users' eingebaute Semantik direkt nutzbar ist - require_admin/get_current_user bleiben als Wrapper unter gleichem Namen, alle Router-Dateien bis auf geraete.py (dict- zu attribut-Zugriff auf user.organization_id) unverändert. Lokal end-to-end gegen eine Wegwerf-Postgres-Instanz (podman) verifiziert: Migration, Bestandskonto-Login mit altem Passwort samt Argon2-Upgrade, Admin-Kontoanlage über beide Aufrufstellen (create_user.py und admin_kunden.py), 403 für Nicht-Admins, Logout. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
34 lines
594 B
Plaintext
34 lines
594 B
Plaintext
annotated-doc==0.0.5
|
|
annotated-types==0.8.0
|
|
anyio==4.14.2
|
|
argon2-cffi==25.1.0
|
|
argon2-cffi-bindings==25.1.0
|
|
bcrypt==5.0.0
|
|
certifi==2026.7.22
|
|
cffi==2.1.1
|
|
click==8.4.2
|
|
cryptography==50.0.0
|
|
dnspython==2.8.0
|
|
email-validator==2.3.0
|
|
fastapi==0.141.1
|
|
fastapi-users==15.0.5
|
|
h11==0.16.0
|
|
httpcore==1.0.9
|
|
httpx==0.28.1
|
|
idna==3.18
|
|
Jinja2==3.1.6
|
|
makefun==1.16.0
|
|
MarkupSafe==3.0.3
|
|
psycopg==3.3.4
|
|
psycopg-binary==3.3.4
|
|
pwdlib==0.3.0
|
|
pycparser==3.0
|
|
pydantic==2.13.4
|
|
pydantic_core==2.46.4
|
|
PyJWT==2.13.0
|
|
python-multipart==0.0.32
|
|
starlette==1.3.1
|
|
typing-inspection==0.4.2
|
|
typing_extensions==4.16.0
|
|
uvicorn==0.52.1
|