mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-20 08:11:13 -05:00
Fix RLS policy for profiles
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
-- Fix: Allow authenticated users to view public profiles
|
||||
-- The filtered_profiles view handles field-level privacy filtering
|
||||
|
||||
-- Drop the confusingly named policy that doesn't actually use the filtered view
|
||||
DROP POLICY IF EXISTS "Users view own profile or use filtered view" ON public.profiles;
|
||||
|
||||
-- Add a new policy that allows viewing public, non-banned profiles
|
||||
-- The filtered_profiles view will handle granular field-level access control
|
||||
CREATE POLICY "Authenticated users can view public profiles"
|
||||
ON public.profiles
|
||||
FOR SELECT
|
||||
TO authenticated
|
||||
USING (
|
||||
-- Users can always see their own profile completely
|
||||
(auth.uid() = user_id)
|
||||
OR
|
||||
-- Users can see public profiles that aren't banned
|
||||
(privacy_level = 'public' AND NOT banned)
|
||||
OR
|
||||
-- Moderators can see all profiles
|
||||
is_moderator(auth.uid())
|
||||
);
|
||||
|
||||
-- Add comment explaining the security model
|
||||
COMMENT ON POLICY "Authenticated users can view public profiles" ON public.profiles IS
|
||||
'Allows authenticated users to view public profiles.
|
||||
Sensitive fields should be accessed through the filtered_profiles view which enforces granular privacy controls.
|
||||
Users can always see their own complete profile.
|
||||
Moderators can see all profiles.
|
||||
Banned profiles are hidden from regular users.';
|
||||
Reference in New Issue
Block a user