-- Vérification RLS pour VIREMENTS-SALAIRES et COTISATIONS -- Tables critiques: salary_transfers, monthly_contributions, contribution_notifications -- 1️⃣ VÉRIFICATION RLS ACTIVÉE SELECT schemaname, tablename, rowsecurity AS rls_enabled FROM pg_tables WHERE tablename IN ('salary_transfers', 'monthly_contributions', 'contribution_notifications') ORDER BY tablename; -- 2️⃣ POLITIQUES RLS EXISTANTES SELECT schemaname, tablename, policyname, permissive, roles, cmd, qual, with_check FROM pg_policies WHERE tablename IN ('salary_transfers', 'monthly_contributions', 'contribution_notifications') ORDER BY tablename, cmd, policyname; -- 3️⃣ INDEX SUR org_id SELECT schemaname, tablename, indexname, indexdef FROM pg_indexes WHERE tablename IN ('salary_transfers', 'monthly_contributions', 'contribution_notifications') AND indexdef ILIKE '%org_id%' ORDER BY tablename, indexname; -- ================================================================================ -- RÉSULTATS DE VÉRIFICATION (16 octobre 2025) -- ================================================================================ -- 1️⃣ RLS ACTIVÉ -- contribution_notifications : ❌ false → CORRECTION REQUISE -- monthly_contributions : ✅ true -- salary_transfers : ✅ true -- 2️⃣ POLITIQUES RLS -- monthly_contributions (4 politiques) : -- - SELECT : is_member_of_org(org_id) ✅ CONFORME -- - INSERT : is_member_of_org(org_id) ✅ CONFORME -- - UPDATE : is_member_of_org(org_id) ✅ CONFORME -- - DELETE : is_member_of_org(org_id) ✅ CONFORME -- -- salary_transfers (4 politiques) : -- - SELECT : is_staff() OR is_member_of_org() ✅ CONFORME -- - INSERT : is_staff() ✅ CONFORME (staff only) -- - UPDATE : is_staff() ✅ CONFORME (staff only) -- - DELETE : is_staff() ✅ CONFORME (staff only) -- -- contribution_notifications : -- - Aucune politique (RLS désactivé) ❌ À CRÉER -- 3️⃣ INDEX org_id -- contribution_notifications : ✅ 1 index unique (org_id, period_label) -- monthly_contributions : ✅ 3 index (dont 2 sur org_id simple) -- salary_transfers : ✅ 1 index unique composite (org_id, period_month, mode, callsheet_url) -- ================================================================================ -- CONCLUSION -- ================================================================================ -- 🟢 EXCELLENT : salary_transfers et monthly_contributions -- - RLS activé avec politiques robustes -- - Index performants en place -- - Isolation par organisation garantie -- -- ✅ CORRIGÉ (16 octobre 2025) : contribution_notifications -- - RLS activé ✅ -- - 4 politiques staff-only créées ✅ -- * select_staff_only (SELECT) -- * insert_staff_only (INSERT) -- * update_staff_only (UPDATE) -- * delete_staff_only (DELETE) -- - Index unique (org_id, period_label) présent ✅ -- -- 🟢 STATUT FINAL : EXCELLENT -- Toutes les tables critiques sont maintenant protégées par RLS avec politiques appropriées.