29 lines
1.0 KiB
SQL
29 lines
1.0 KiB
SQL
-- Create storage bucket for avatars
|
|
INSERT INTO storage.buckets (id, name, public)
|
|
VALUES ('avatars', 'avatars', true)
|
|
ON CONFLICT (id) DO NOTHING;
|
|
|
|
-- Allow authenticated users to upload to org-avatars folder
|
|
CREATE POLICY "Authenticated users can upload org avatars"
|
|
ON storage.objects FOR INSERT
|
|
TO authenticated
|
|
WITH CHECK (bucket_id = 'avatars' AND (storage.foldername(name))[1] = 'org-avatars');
|
|
|
|
-- Allow authenticated users to update (upsert) their org avatars
|
|
CREATE POLICY "Authenticated users can update org avatars"
|
|
ON storage.objects FOR UPDATE
|
|
TO authenticated
|
|
USING (bucket_id = 'avatars' AND (storage.foldername(name))[1] = 'org-avatars');
|
|
|
|
-- Allow public read access to all avatars
|
|
CREATE POLICY "Public read access for avatars"
|
|
ON storage.objects FOR SELECT
|
|
TO public
|
|
USING (bucket_id = 'avatars');
|
|
|
|
-- Allow authenticated users to delete org avatars
|
|
CREATE POLICY "Authenticated users can delete org avatars"
|
|
ON storage.objects FOR DELETE
|
|
TO authenticated
|
|
USING (bucket_id = 'avatars' AND (storage.foldername(name))[1] = 'org-avatars');
|