38 lines
1.3 KiB
MySQL
38 lines
1.3 KiB
MySQL
|
|
-- Monaco USA Portal 2026
|
||
|
|
-- Migration 005: Fix Avatars Storage Policy
|
||
|
|
-- ================================================
|
||
|
|
-- This fixes the RLS policy for avatars bucket to allow authenticated users to upload
|
||
|
|
|
||
|
|
-- Drop existing restrictive policies
|
||
|
|
DROP POLICY IF EXISTS "avatars_insert_policy" ON storage.objects;
|
||
|
|
DROP POLICY IF EXISTS "avatars_update_policy" ON storage.objects;
|
||
|
|
DROP POLICY IF EXISTS "avatars_delete_policy" ON storage.objects;
|
||
|
|
|
||
|
|
-- Create new permissive policy for authenticated users
|
||
|
|
-- Avatars bucket is public for reading, so we just need to ensure authenticated users can upload
|
||
|
|
CREATE POLICY "avatars_insert_policy" ON storage.objects FOR INSERT
|
||
|
|
TO authenticated
|
||
|
|
WITH CHECK (bucket_id = 'avatars');
|
||
|
|
|
||
|
|
CREATE POLICY "avatars_update_policy" ON storage.objects FOR UPDATE
|
||
|
|
TO authenticated
|
||
|
|
USING (bucket_id = 'avatars');
|
||
|
|
|
||
|
|
CREATE POLICY "avatars_delete_policy" ON storage.objects FOR DELETE
|
||
|
|
TO authenticated
|
||
|
|
USING (bucket_id = 'avatars');
|
||
|
|
|
||
|
|
-- Ensure the avatars bucket exists and is public
|
||
|
|
INSERT INTO storage.buckets (id, name, public, file_size_limit, allowed_mime_types)
|
||
|
|
VALUES (
|
||
|
|
'avatars',
|
||
|
|
'avatars',
|
||
|
|
true,
|
||
|
|
5242880, -- 5MB
|
||
|
|
ARRAY['image/jpeg', 'image/png', 'image/webp', 'image/gif']
|
||
|
|
)
|
||
|
|
ON CONFLICT (id) DO UPDATE SET
|
||
|
|
public = true,
|
||
|
|
file_size_limit = EXCLUDED.file_size_limit,
|
||
|
|
allowed_mime_types = EXCLUDED.allowed_mime_types;
|