-- Deploy camper:campsite_type_option to pg -- requires: roles -- requires: schema_camper -- requires: campsite_type -- requires: user_profile begin; set search_path to camper, public; create table campsite_type_option ( campsite_type_option_id integer generated by default as identity primary key, campsite_type_id integer not null references campsite_type, name text not null constraint name_not_empty check(length(trim(name)) > 0), range int4range not null constraint range_not_negative check(lower(range) >= 0), position integer not null default 2147483647 ); alter table campsite_type_option enable row level security; grant select on table campsite_type_option to guest; grant select on table campsite_type_option to employee; grant select, insert, update, delete on table campsite_type_option to admin; create policy guest_ok on campsite_type_option for select using (true) ; create policy insert_to_company on campsite_type_option for insert with check ( exists (select 1 from campsite_type join user_profile using (company_id) where campsite_type.campsite_type_id = campsite_type_option.campsite_type_id) ) ; create policy update_company on campsite_type_option for update using ( exists (select 1 from campsite_type join user_profile using (company_id) where campsite_type.campsite_type_id = campsite_type_option.campsite_type_id) ) ; create policy delete_from_company on campsite_type_option for delete using ( exists (select 1 from campsite_type join user_profile using (company_id) where campsite_type.campsite_type_id = campsite_type_option.campsite_type_id) ) ; commit;