26 lines
1.4 KiB
SQL
26 lines
1.4 KiB
SQL
-- ====================================================================
|
|
-- 0050_employee_extra_fields — Frei definierbare Zusatzangaben
|
|
-- ====================================================================
|
|
-- Mitarbeiter können beliebig viele weitere Telefonnummern und private
|
|
-- Angaben hinterlegen, jeweils ein-/ausblendbar. Statt vieler fester
|
|
-- Spalten eine JSONB-Liste:
|
|
-- [{ "id": "f0", "kind": "phone|mobile|email|address|text",
|
|
-- "label": "Festnetz privat", "value": "...", "visible": true }, …]
|
|
--
|
|
-- Sichtbarkeit wird wie bei show_mobile serverseitig im Render/vCard
|
|
-- gefiltert (visibleExtraFields). Die öffentliche Karte liest seit 0045
|
|
-- ohnehin per Service-Role — anon braucht die Spalte nicht und soll sie
|
|
-- (ausgeblendete, ggf. private Werte) auch nicht lesen können.
|
|
|
|
alter table public.employees
|
|
add column if not exists extra_fields jsonb not null default '[]'::jsonb;
|
|
|
|
comment on column public.employees.extra_fields is
|
|
'Frei definierbare Zusatzangaben (weitere Telefonnummern, private Angaben). '
|
|
'Liste von {id, kind, label, value, visible}. Sichtbarkeit pro Eintrag; '
|
|
'serverseitige Filterung im Render/vCard. Siehe lib/extra-fields.ts.';
|
|
|
|
-- anon darf die Spalte nicht direkt lesen (könnte ausgeblendete/private
|
|
-- Einträge enthalten). REVOKE auf nicht vorhandenen Grant ist ein No-op.
|
|
revoke select (extra_fields) on public.employees from anon;
|