Initial
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
-- EK-DOS-WEB: Benutzer, Rollen und Protokoll.
|
||||
-- Sitzungen und n8n-Antworten liegen in Redis, nicht hier.
|
||||
|
||||
create extension if not exists pgcrypto;
|
||||
|
||||
create table if not exists users (
|
||||
id uuid primary key default gen_random_uuid(),
|
||||
username text not null,
|
||||
display_name text not null,
|
||||
role text not null default 'buero',
|
||||
password_hash text not null,
|
||||
is_active boolean not null default true,
|
||||
created_at timestamptz not null default now(),
|
||||
updated_at timestamptz not null default now(),
|
||||
last_login_at timestamptz,
|
||||
constraint users_role_check check (role in ('admin', 'inhaber', 'buero'))
|
||||
);
|
||||
|
||||
-- Anmeldename ohne Ruecksicht auf Gross-/Kleinschreibung eindeutig.
|
||||
create unique index if not exists users_username_key on users (lower(username));
|
||||
create index if not exists users_active_idx on users (is_active) where is_active;
|
||||
|
||||
create table if not exists user_audit (
|
||||
id bigserial primary key,
|
||||
actor_id uuid references users (id) on delete set null,
|
||||
actor_name text not null,
|
||||
action text not null,
|
||||
subject_id uuid,
|
||||
subject text not null default '',
|
||||
detail jsonb not null default '{}'::jsonb,
|
||||
created_at timestamptz not null default now()
|
||||
);
|
||||
|
||||
create index if not exists user_audit_created_at_idx on user_audit (created_at desc);
|
||||
Reference in New Issue
Block a user