Neue Rolle ist_organisationsadmin (auth.py), bewusst getrennt von is_superuser: is_superuser bleibt exklusiv internes, organisationsuebergreifendes Tuxflotte-Personal mit Zugriff auf /admin/* - ist_organisationsadmin ist auf die eigene Organisation beschränkt und kann nie über Self-Service gesetzt werden (organization_id/is_superuser kommen bei POST /organisation/konten nie aus dem Formular, sondern immer aus der Session). /organisation zeigt jetzt Kontakt-/Stammdaten (bearbeitbar) und die Kolleg:innen-Liste der eigenen Organisation (für alle sichtbar, Verwaltung nur für Org-Admins/internes Personal via require_org_admin). Selbstlöschung des eigenen Kontos wird verweigert. fetch_benutzer_fuer_organisation() von admin_kunden.py nach auth.py verschoben (jetzt von beiden Routern importiert, kein Duplikat) - liefert zusätzlich id + ist_organisationsadmin. admin_kunden.py bekommt eine neue Organisationsdaten-Sektion (nutzt denselben PATCH-Endpoint) und die neue Checkbox beim Konto-Anlegen, um den ersten Org-Admin einer neuen Organisation zu bootstrappen. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
12 lines
501 B
PL/PgSQL
12 lines
501 B
PL/PgSQL
BEGIN;
|
|
|
|
-- Organisationsgebundene Admin-Rolle fuer Self-Service-Kontenverwaltung
|
|
-- (/organisation/konten) - bewusst getrennt von is_superuser, das
|
|
-- weiterhin ausschliesslich organisationsuebergreifendes, internes
|
|
-- Tuxflotte-Personal mit Zugriff auf /admin/* bedeutet. Eine Kundin darf
|
|
-- sich selbst nie is_superuser setzen koennen, nur dieses neue,
|
|
-- auf die eigene Organisation beschraenkte Flag.
|
|
ALTER TABLE benutzer ADD COLUMN ist_organisationsadmin BOOLEAN NOT NULL DEFAULT FALSE;
|
|
|
|
COMMIT;
|