4cb0084066164ec4540d08f8b7095634adfe9c93
- Neues Modell ProjektUser (projekt_users) für projektbezogene Sichtbarkeit
- Migration V01_09 legt Tabelle an (keine Initial-Befüllung)
- CRUD-Logik für Projekt-User-Zuordnungen mit Cross-DB-User-Auflösung
- Serverseitige Sichtbarkeits-Filterung: Projekt-Liste/Get filtert nach
projekt_users-Zuordnung für Nicht-SysAdmin/Nicht-AppAdmin
- Auto-Assignment: Ersteller wird bei Projektanlage automatisch zugeordnet
- Sichtbarkeits-Filterung auf CallLog und Kontaktadresse erweitert
(Liste und Einzelabruf)
- Schreibschutz: Alle Schreib-Endpunkte (update/delete) für Projekt,
Kontaktadresse und CallLog prüfen Projekt-Zuordnung vor der Ausführung
- Hilfsfunktionen _get_visible_user_id() und _require_projekt_access()
zur Kapselung der wiederkehrenden Prüfungen
- REST-Endpunkte /xhr/projektuser/{list,add,remove};
Schreib-Endpunkte mit @authorisation_required([]) als Erweiterungspunkt
- Client: Neues Modell projekt_user.ts, Listen-Komponente mit Modal
(Select-Widget), Button in Projekt-Maske, Route registriert
- Build aktualisiert (tsc + rollup)
- AGENTS.md: Vorgaben für projektbezogene Sichtbarkeit dokumentiert
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
kbcrm
[Kurzbeschreibung folgt – Zweck und Ziel der Applikation]
Authentifizierung vollständig an Zitadel delegiert. Lokale Datenhaltung, Benutzer- und Rollenverwaltung über SQLite.
Technologie-Stack
| Komponente | Technologie |
|---|---|
| Backend | Python Flask 2.x |
| OIDC-Client | Authlib |
| Datenbank | SQLite via SQLAlchemy |
| IdP | Zitadel |
| Produktion | Docker / waitress |
| web-js-frontend | mithril.js |
Lokale Entwicklung
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # Zitadel-Credentials eintragen
flask db-init # Schema initialisieren
flask seed-db # Testdaten einspielen
flask run # App startet auf http://localhost:5000
Languages
TypeScript
61.1%
Python
31.6%
CSS
4.3%
Shell
1.4%
Dockerfile
0.8%
Other
0.8%