mirror of
https://github.com/renee-png/acmcc.git
synced 2026-06-21 09:50:01 +00:00
Add ACMCC app source, Supabase backend, and project config
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
DROP POLICY IF EXISTS "Homeowners can comment on own ARC apps" ON public.arc_application_comments;
|
||||
CREATE POLICY "Homeowners and RV Boat Lot can comment on own ARC apps"
|
||||
ON public.arc_application_comments
|
||||
FOR INSERT
|
||||
TO authenticated
|
||||
WITH CHECK (
|
||||
(public.has_role(auth.uid(), 'homeowner'::public.app_role) OR public.has_role(auth.uid(), 'rv_boat_lot'::public.app_role))
|
||||
AND application_id IN (
|
||||
SELECT a.id
|
||||
FROM public.arc_applications a
|
||||
JOIN public.owners o ON o.id = a.owner_id
|
||||
WHERE o.user_id = auth.uid()
|
||||
)
|
||||
);
|
||||
|
||||
DROP POLICY IF EXISTS "Homeowners can submit ARC applications" ON public.arc_applications;
|
||||
CREATE POLICY "Homeowners and RV Boat Lot can submit ARC applications"
|
||||
ON public.arc_applications
|
||||
FOR INSERT
|
||||
TO authenticated
|
||||
WITH CHECK (
|
||||
(public.has_role(auth.uid(), 'homeowner'::public.app_role) OR public.has_role(auth.uid(), 'rv_boat_lot'::public.app_role))
|
||||
AND association_id IN (
|
||||
SELECT o.association_id
|
||||
FROM public.owners o
|
||||
WHERE o.user_id = auth.uid()
|
||||
)
|
||||
);
|
||||
|
||||
DROP POLICY IF EXISTS "Homeowners can update own pending ARC applications" ON public.arc_applications;
|
||||
CREATE POLICY "Homeowners and RV Boat Lot can update own pending ARC applications"
|
||||
ON public.arc_applications
|
||||
FOR UPDATE
|
||||
TO authenticated
|
||||
USING (
|
||||
(public.has_role(auth.uid(), 'homeowner'::public.app_role) OR public.has_role(auth.uid(), 'rv_boat_lot'::public.app_role))
|
||||
AND owner_id IN (
|
||||
SELECT o.id
|
||||
FROM public.owners o
|
||||
WHERE o.user_id = auth.uid()
|
||||
)
|
||||
AND status = ANY (ARRAY['pending'::text, 'draft'::text])
|
||||
);
|
||||
|
||||
DROP POLICY IF EXISTS "Homeowners can view own ARC applications" ON public.arc_applications;
|
||||
CREATE POLICY "Homeowners and RV Boat Lot can view own ARC applications"
|
||||
ON public.arc_applications
|
||||
FOR SELECT
|
||||
TO authenticated
|
||||
USING (
|
||||
(public.has_role(auth.uid(), 'homeowner'::public.app_role) OR public.has_role(auth.uid(), 'rv_boat_lot'::public.app_role))
|
||||
AND owner_id IN (
|
||||
SELECT o.id
|
||||
FROM public.owners o
|
||||
WHERE o.user_id = auth.uid()
|
||||
)
|
||||
);
|
||||
|
||||
DROP POLICY IF EXISTS "Homeowners can view shared association documents" ON public.documents;
|
||||
CREATE POLICY "Homeowners and RV Boat Lot can view shared association documents"
|
||||
ON public.documents
|
||||
FOR SELECT
|
||||
TO authenticated
|
||||
USING (
|
||||
(public.has_role(auth.uid(), 'homeowner'::public.app_role) OR public.has_role(auth.uid(), 'rv_boat_lot'::public.app_role))
|
||||
AND association_id IN (
|
||||
SELECT o.association_id
|
||||
FROM public.owners o
|
||||
WHERE o.user_id = auth.uid()
|
||||
)
|
||||
AND (is_public = true OR visibility @> ARRAY['homeowner'::text] OR visibility @> ARRAY['public'::text])
|
||||
);
|
||||
|
||||
DROP POLICY IF EXISTS "Users can view files shared with their role or association" ON public.shared_drive_files;
|
||||
CREATE POLICY "Users can view files shared with their role or association"
|
||||
ON public.shared_drive_files
|
||||
FOR SELECT
|
||||
TO authenticated
|
||||
USING (
|
||||
public.has_role(auth.uid(), 'admin'::public.app_role)
|
||||
OR public.has_role(auth.uid(), 'manager'::public.app_role)
|
||||
OR (
|
||||
'board_member'::text = ANY (visibility)
|
||||
AND EXISTS (
|
||||
SELECT 1 FROM public.board_members bm
|
||||
WHERE bm.user_id = auth.uid()
|
||||
AND bm.association_id = ANY (shared_drive_files.association_ids)
|
||||
)
|
||||
)
|
||||
OR (
|
||||
('homeowner'::text = ANY (visibility) OR 'rv_boat_lot'::text = ANY (visibility))
|
||||
AND EXISTS (
|
||||
SELECT 1 FROM public.owners o
|
||||
WHERE o.user_id = auth.uid()
|
||||
AND o.association_id = ANY (shared_drive_files.association_ids)
|
||||
)
|
||||
)
|
||||
);
|
||||
Reference in New Issue
Block a user