campingmontagut/deploy/home_carousel.sql
jordi fita mas 678b5cc523 Add user-defined order to campsite types, options, seasons and carousels
I use Sortable, exactly like HTMx’s sorting example does[0].  Had to
export the slug or ID of some entries to be able to add it in the hidden
input.

For forms that use ID instead of slug, had to use an input name other
than “id” because otherwise the swap would fail due to bug #1496[1].  It
is apparently fixed in a recent version of HTMx, but i did not want to
update for fear of behaviour changes.

[0]: https://htmx.org/examples/sortable/
[1]: https://github.com/bigskysoftware/htmx/issues/1496
2023-12-20 19:52:14 +01:00

55 lines
1.2 KiB
PL/PgSQL

-- Deploy camper:home_carousel to pg
-- requires: roles
-- requires: schema_camper
-- requires: company
-- requires: media
-- requires: user_profile
begin;
set search_path to camper, public;
create table home_carousel (
media_id integer not null references media primary key,
caption text not null,
position integer not null default 2147483647
);
grant select on table home_carousel to guest;
grant select on table home_carousel to employee;
grant select, insert, update, delete on table home_carousel to admin;
alter table home_carousel enable row level security;
create policy guest_ok
on home_carousel
for select
using (true)
;
create policy insert_to_company
on home_carousel
for insert
with check (
exists (select 1 from media join user_profile using (company_id) where media.media_id = home_carousel.media_id)
)
;
create policy update_company
on home_carousel
for update
using (
exists (select 1 from media join user_profile using (company_id) where media.media_id = home_carousel.media_id)
)
;
create policy delete_from_company
on home_carousel
for delete
using (
exists (select 1 from media join user_profile using (company_id) where media.media_id = home_carousel.media_id)
)
;
commit;