81 lines
4.4 KiB
SQL
81 lines
4.4 KiB
SQL
-- ============================================================================
|
|
-- CORRECTIF : Policies RLS du bucket "banque-annonces" et des tables SQL
|
|
-- Date : 2026-07-02
|
|
--
|
|
-- Problème : L'application utilise la clé anon et une authentification custom. Les
|
|
-- policies de banque_mots et de storage.objects qui exigent un utilisateur
|
|
-- authentifié (TO authenticated) bloquent l'INSERT/UPDATE/DELETE et provoquent
|
|
-- l'erreur "new row violates row-level security policy".
|
|
--
|
|
-- Solution : Recréer des policies pour permettre SELECT, INSERT, UPDATE, DELETE
|
|
-- sur le bucket 'banque-annonces' et sur les tables de la base de données.
|
|
--
|
|
-- ⚠️ À EXÉCUTER dans l'éditeur SQL Supabase :
|
|
-- https://app.supabase.com → votre projet → SQL Editor
|
|
-- ============================================================================
|
|
|
|
-- 1. Réglage des politiques RLS pour les tables de base de données
|
|
-- ============================================================================
|
|
|
|
-- Table: banque_mots
|
|
DROP POLICY IF EXISTS "Authenticated users can read banque_mots" ON public.banque_mots;
|
|
DROP POLICY IF EXISTS "Authenticated users can insert banque_mots" ON public.banque_mots;
|
|
DROP POLICY IF EXISTS "Authenticated users can update banque_mots" ON public.banque_mots;
|
|
|
|
CREATE POLICY "Public read banque_mots" ON public.banque_mots FOR SELECT USING (deleted_at IS NULL);
|
|
CREATE POLICY "Public insert banque_mots" ON public.banque_mots FOR INSERT WITH CHECK (true);
|
|
CREATE POLICY "Public update banque_mots" ON public.banque_mots FOR UPDATE USING (true);
|
|
CREATE POLICY "Public delete banque_mots" ON public.banque_mots FOR DELETE USING (true);
|
|
|
|
-- Table: annonces_templates
|
|
DROP POLICY IF EXISTS "Authenticated users can read templates" ON public.annonces_templates;
|
|
DROP POLICY IF EXISTS "Authenticated users can insert templates" ON public.annonces_templates;
|
|
DROP POLICY IF EXISTS "Authenticated users can update templates" ON public.annonces_templates;
|
|
|
|
CREATE POLICY "Public read templates" ON public.annonces_templates FOR SELECT USING (deleted_at IS NULL);
|
|
CREATE POLICY "Public insert templates" ON public.annonces_templates FOR INSERT WITH CHECK (true);
|
|
CREATE POLICY "Public update templates" ON public.annonces_templates FOR UPDATE USING (true);
|
|
CREATE POLICY "Public delete templates" ON public.annonces_templates FOR DELETE USING (true);
|
|
|
|
-- Table: annonces_enregistrees
|
|
DROP POLICY IF EXISTS "Authenticated users can read annonces" ON public.annonces_enregistrees;
|
|
DROP POLICY IF EXISTS "Authenticated users can insert annonces" ON public.annonces_enregistrees;
|
|
DROP POLICY IF EXISTS "Authenticated users can update annonces" ON public.annonces_enregistrees;
|
|
|
|
CREATE POLICY "Public read annonces" ON public.annonces_enregistrees FOR SELECT USING (deleted_at IS NULL);
|
|
CREATE POLICY "Public insert annonces" ON public.annonces_enregistrees FOR INSERT WITH CHECK (true);
|
|
CREATE POLICY "Public update annonces" ON public.annonces_enregistrees FOR UPDATE USING (true);
|
|
CREATE POLICY "Public delete annonces" ON public.annonces_enregistrees FOR DELETE USING (true);
|
|
|
|
|
|
-- 2. Réglage des politiques RLS du Bucket Storage "banque-annonces"
|
|
-- ============================================================================
|
|
|
|
-- Supprimer les anciennes politiques storage si elles existent
|
|
DROP POLICY IF EXISTS "Public read access on banque-annonces" ON storage.objects;
|
|
DROP POLICY IF EXISTS "Authenticated users can upload to banque-annonces" ON storage.objects;
|
|
DROP POLICY IF EXISTS "Authenticated users can delete from banque-annonces" ON storage.objects;
|
|
DROP POLICY IF EXISTS "Public upload access on banque-annonces" ON storage.objects;
|
|
DROP POLICY IF EXISTS "Public update access on banque-annonces" ON storage.objects;
|
|
DROP POLICY IF EXISTS "Public delete access on banque-annonces" ON storage.objects;
|
|
|
|
-- Lecture publique pour tous
|
|
CREATE POLICY "Public read access on banque-annonces"
|
|
ON storage.objects FOR SELECT
|
|
USING (bucket_id = 'banque-annonces');
|
|
|
|
-- Insertion publique (Upload)
|
|
CREATE POLICY "Public upload access on banque-annonces"
|
|
ON storage.objects FOR INSERT
|
|
WITH CHECK (bucket_id = 'banque-annonces');
|
|
|
|
-- Mise à jour publique (Upsert)
|
|
CREATE POLICY "Public update access on banque-annonces"
|
|
ON storage.objects FOR UPDATE
|
|
USING (bucket_id = 'banque-annonces');
|
|
|
|
-- Suppression publique (Delete)
|
|
CREATE POLICY "Public delete access on banque-annonces"
|
|
ON storage.objects FOR DELETE
|
|
USING (bucket_id = 'banque-annonces');
|