user management drin.

This commit is contained in:
br committed 2026-06-17 20:03:09 +02:00
1 parent 5a0260e4fd
commit dffc360790
3 files changed
+72 -28

No files matched your search

+36 -22
View File
@@ -49,18 +49,29 @@ def _register_cli(app):
db.create_all()
# ------------------------------------------------------------------
# PLATZHALTER – nach Zitadel-Setup durch echte sub-Werte ersetzen.
# Anleitung: ZITADEL-SETUP.md, Schritt 6
# Zitadel-User-IDs (sub-Werte) eintragen – Anleitung: ZITADEL-SETUP.md Schritt 6
# Beliebig viele Einträge pro Rolle möglich.
# Format: (zitadel_sub, email)
# ------------------------------------------------------------------
ADMIN_ID = "ZITADEL_SUB_ADMIN"
MITARBEITER_ID = "ZITADEL_SUB_MITARBEITER"
KUNDE_ID = "ZITADEL_SUB_KUNDE"
ADMINS = [
("377858996305921031", "test@oidctest.local"), # Test Admin
("361726819499508906", "br@runden.de"), # Björn Runden
]
MITARBEITER = [
("377859593088271367", "testmuellerma@oidctest.local"), # Test Müller mitarbeiter
("377859271703921671", "staff2@oidctest.local"), # test2 staff
("377859141412062215", "teststaff@oidctest.local"), # test Mitarbeiter
]
KUNDEN = [
("377859426305967111", "testmueller@oidctest.local"), # oidctest kund1 Müller
]
db.session.add_all([
User(zitadel_user_id=ADMIN_ID, email="admin@test.local", global_role="Admin"),
User(zitadel_user_id=MITARBEITER_ID, email="ma@test.local", global_role="Mitarbeiter"),
User(zitadel_user_id=KUNDE_ID, email="kunde@test.local", global_role="Kunde"),
])
for sub, email in ADMINS:
db.session.add(User(zitadel_user_id=sub, email=email, global_role="Admin"))
for sub, email in MITARBEITER:
db.session.add(User(zitadel_user_id=sub, email=email, global_role="Mitarbeiter"))
for sub, email in KUNDEN:
db.session.add(User(zitadel_user_id=sub, email=email, global_role="Kunde"))
firma = Client(name="Firma Müller")
db.session.add(firma)
@@ -72,25 +83,28 @@ def _register_cli(app):
db.session.add_all([p1, p2, p3])
db.session.flush()
# Mitarbeiter → Projekte 1 + 2 (nicht 3 → Failure-Test-Button)
db.session.add_all([
ProjectMitarbeiterMapping(user_id=MITARBEITER_ID, project_id=p1.id),
ProjectMitarbeiterMapping(user_id=MITARBEITER_ID, project_id=p2.id),
])
# Alle Mitarbeiter → Projekte 1 + 2 (nicht 3 → Failure-Test-Button)
for sub, _ in MITARBEITER:
db.session.add(ProjectMitarbeiterMapping(user_id=sub, project_id=p1.id))
db.session.add(ProjectMitarbeiterMapping(user_id=sub, project_id=p2.id))
# Kunde → Projekt 1 (nicht 2 + 3 → Failure-Test-Button)
db.session.add(ProjectKundenMapping(user_id=KUNDE_ID, project_id=p1.id))
# Alle Kunden → Projekt 1 (nicht 2 + 3 → Failure-Test-Button)
for sub, _ in KUNDEN:
db.session.add(ProjectKundenMapping(user_id=sub, project_id=p1.id))
# Beispielnotizen werden dem ersten Mitarbeiter zugeordnet
ma_sub = MITARBEITER[0][0]
db.session.add_all([
Note(text="Erstkontakt aufgenommen.", project_id=p1.id,
user_id=MITARBEITER_ID, created_at=datetime.utcnow()),
user_id=ma_sub, created_at=datetime.utcnow()),
Note(text="Angebot versendet.", project_id=p1.id,
user_id=MITARBEITER_ID, created_at=datetime.utcnow()),
user_id=ma_sub, created_at=datetime.utcnow()),
Note(text="Folgetermin vereinbart.", project_id=p2.id,
user_id=MITARBEITER_ID, created_at=datetime.utcnow()),
user_id=ma_sub, created_at=datetime.utcnow()),
])
db.session.commit()
click.echo("Datenbank initialisiert und mit Testdaten befüllt.")
click.echo(f" → Platzhalter-IDs aktiv: {ADMIN_ID}, {MITARBEITER_ID}, {KUNDE_ID}")
click.echo(" → Echte IDs aus ZITADEL-SETUP.md Schritt 6 eintragen, dann erneut seeden.")
click.echo(f" Admins : {[s for s, _ in ADMINS]}")
click.echo(f" Mitarbeiter : {[s for s, _ in MITARBEITER]}")
click.echo(f" Kunden : {[s for s, _ in KUNDEN]}")