You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
1.0 KiB
28 lines
1.0 KiB
-- 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');
|
|
|