Spaces:
Running
Running
File size: 1,654 Bytes
03bff6f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
/*
# File management policies
1. Changes
- Creates policies for file management
- Sets up proper access control for authenticated users and admins
2. Security
- Implements RLS policies for the codette_files table
- Ensures proper access control based on user roles
*/
-- Enable RLS on codette_files table
ALTER TABLE public.codette_files ENABLE ROW LEVEL SECURITY;
-- Create policies for the codette_files table
DO $$
BEGIN
-- Check if the read policy exists
IF NOT EXISTS (
SELECT 1 FROM pg_policies
WHERE policyname = 'Allow authenticated users to read files'
AND tablename = 'codette_files'
) THEN
CREATE POLICY "Allow authenticated users to read files"
ON public.codette_files FOR SELECT
TO authenticated
USING (true);
END IF;
-- Check if the admin insert policy exists
IF NOT EXISTS (
SELECT 1 FROM pg_policies
WHERE policyname = 'Allow admin users to insert files'
AND tablename = 'codette_files'
) THEN
CREATE POLICY "Allow admin users to insert files"
ON public.codette_files FOR INSERT
TO authenticated
WITH CHECK (auth.jwt() ->> 'role' = 'admin');
END IF;
-- Check if the authenticated insert policy exists
IF NOT EXISTS (
SELECT 1 FROM pg_policies
WHERE policyname = 'Allow authenticated users to insert files'
AND tablename = 'codette_files'
) THEN
CREATE POLICY "Allow authenticated users to insert files"
ON public.codette_files FOR INSERT
TO authenticated
WITH CHECK (true);
END IF;
END $$; |