Bereiche vollständig verwaltbar (anlegen/bearbeiten/löschen/Uhrzeit)
Migration 0006: sections.key bekommt einen automatisch generierten Schlüssel (wie dishes.id), menu_entries.section_key kaskadiert beim Löschen eines Bereichs, neue RLS-Policy erlaubt Kantinenmitarbeitern/ Admins Schreibzugriff auf sections. Neue Seite „Bereiche" im Kantinen-Bereich (SectionManager): Bereiche anlegen, umbenennen (inkl. EN/PL), Uhrzeit setzen, löschen und per Pfeil-Buttons neu anordnen.
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
-- =============================================================
|
||||
-- Bereiche (Brotzeit/Mittagessen/…) vollständig verwaltbar machen:
|
||||
-- anlegen, umbenennen, Uhrzeit ändern, löschen.
|
||||
-- =============================================================
|
||||
|
||||
-- Neue Bereiche bekommen einen automatisch generierten Schlüssel
|
||||
-- (wie bei dishes.id) statt eines von Hand vergebenen Slugs.
|
||||
alter table public.sections
|
||||
alter column key set default (gen_random_uuid())::text;
|
||||
|
||||
-- Löscht man einen Bereich, werden seine Wochenplan-Einträge mit
|
||||
-- entfernt (analog zu menu_entries_dish_id_fkey bei Gerichten) statt
|
||||
-- die Löschung zu blockieren.
|
||||
alter table public.menu_entries
|
||||
drop constraint menu_entries_section_key_fkey;
|
||||
alter table public.menu_entries
|
||||
add constraint menu_entries_section_key_fkey
|
||||
foreign key (section_key) references public.sections(key) on delete cascade;
|
||||
|
||||
-- Bisher gab es nur eine Lesepolicy für sections; jetzt dürfen
|
||||
-- Kantinenmitarbeiter/Admins Bereiche auch anlegen/ändern/löschen.
|
||||
create policy "sections_staff_write" on public.sections
|
||||
for all to authenticated
|
||||
using (public.app_role() in ('staff', 'admin'))
|
||||
with check (public.app_role() in ('staff', 'admin'));
|
||||
Reference in New Issue
Block a user