campingmontagut/deploy/season_calendar.sql
jordi fita mas ea2fe8848b Add the season_calendar relation and table on the admin section
This calendar is supposed to be edited by admin users, but do not yet
have the complete JavaScript code to do so, thus for now i have made it
read-only.
2023-09-27 02:23:09 +02:00

56 lines
1.3 KiB
PL/PgSQL

-- Deploy camper:season_calendar to pg
-- requires: roles
-- requires: schema_camper
-- requires: season
-- requires: extension_btree_gist
-- requires: user_profile
begin;
set search_path to camper, public;
create table season_calendar (
season_id integer not null,
season_range daterange not null,
primary key (season_id, season_range),
constraint disallow_overlap exclude using gist (season_id with =, season_range with &&)
);
grant select on table season_calendar to guest;
grant select on table season_calendar to employee;
grant select, insert, update, delete on table season_calendar to admin;
alter table season_calendar enable row level security;
create policy guest_ok
on season_calendar
for select
using (true)
;
create policy insert_to_company
on season_calendar
for insert
with check (
exists (select 1 from season join user_profile using (company_id) where season.season_id = season_calendar.season_id)
)
;
create policy update_company
on season_calendar
for update
using (
exists (select 1 from season join user_profile using (company_id) where season.season_id = season_calendar.season_id)
)
;
create policy delete_from_company
on season_calendar
for delete
using (
exists (select 1 from season join user_profile using (company_id) where season.season_id = season_calendar.season_id)
)
;
commit;