Personalisierung Schritt 3: Konten im Check-in, Rückmeldung des Agents, Sperren, Neuinstallation
Check-in liefert persoenliche_konten (anlegen mit Hash, aktiv, sperren, entfernen). /api/v1/agent/persoenliche-konten nimmt die Ergebnisse an: angelegt löscht den Hash und merkt ohne "Bestehenden Zugang behalten" die übrigen Konten zum Entfernen vor. Ein Code ohne Kästchen sperrt bestehende Konten sofort. Sperren/Entsperren je Konto. Eine Neuinstallation beendet alle Personalisierungen des Geräts. Migration 0065 um gesperrt, entfernen, geraet_meldung und Status fehlgeschlagen ergänzt. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
e12f2206a4
commit
b4c77689fd
2 files changed
+197
-5
No files matched your search
@@ -10,16 +10,19 @@ ALTER TABLE organizations
|
||||
ADD COLUMN email_domaenen TEXT[] NOT NULL DEFAULT '{}';
|
||||
|
||||
-- Eine Zeile je Aktivierungscode. Ablauf der Stände:
|
||||
-- code_offen -> eingereicht -> bestaetigt -> angelegt (Schritt 3)
|
||||
-- code_offen -> eingereicht -> bestaetigt -> angelegt (Agent hat das
|
||||
-- Konto am Gerät eingerichtet)
|
||||
-- Abzweige: zurueckgezogen (Kunden-Admin), verfallen (Code oder
|
||||
-- Bestätigungsfrist abgelaufen), beendet (Konto entfernt).
|
||||
-- Bestätigungsfrist abgelaufen), fehlgeschlagen (Gerät konnte das Konto
|
||||
-- nicht anlegen, z.B. Name schon vergeben), beendet (Konto entfernt oder
|
||||
-- Gerät neu installiert).
|
||||
CREATE TABLE personalisierungen (
|
||||
id UUID PRIMARY KEY,
|
||||
device_id UUID NOT NULL REFERENCES devices(id) ON DELETE CASCADE,
|
||||
organization_id UUID NOT NULL REFERENCES organizations(id) ON DELETE CASCADE,
|
||||
status TEXT NOT NULL CHECK (status IN (
|
||||
'code_offen', 'eingereicht', 'bestaetigt', 'angelegt',
|
||||
'zurueckgezogen', 'verfallen', 'beendet'
|
||||
'zurueckgezogen', 'verfallen', 'fehlgeschlagen', 'beendet'
|
||||
)),
|
||||
-- Nur der SHA-256 des normalisierten Codes; der Code selbst wird genau
|
||||
-- einmal angezeigt.
|
||||
@@ -39,7 +42,14 @@ CREATE TABLE personalisierungen (
|
||||
eingereicht_am TIMESTAMPTZ,
|
||||
bestaetigt_am TIMESTAMPTZ,
|
||||
angelegt_am TIMESTAMPTZ,
|
||||
beendet_am TIMESTAMPTZ
|
||||
beendet_am TIMESTAMPTZ,
|
||||
-- Nur für angelegte Konten: gesperrt (Anmeldung verweigert, nicht im
|
||||
-- Anmeldebildschirm) und zum Entfernen vorgemerkt (nach Bestätigung
|
||||
-- eines neuen Kontos ohne "Bestehenden Zugang behalten").
|
||||
gesperrt BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
entfernen BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
-- Letzte Meldung des Geräts zu diesem Konto (Fehlertext).
|
||||
geraet_meldung TEXT
|
||||
);
|
||||
|
||||
CREATE INDEX personalisierungen_device_idx ON personalisierungen (device_id, erstellt_am DESC);
|
||||
|
||||
Reference in new issue
Block a user