-- ==========================================
-- FIX CRITIQUE : RLS sur organization_details
-- ==========================================
-- PROBLÈME: RLS désactivé sur table contenant IBAN, BIC, emails, SIRET
-- IMPACT: Exposition de 40+ colonnes de données bancaires et personnelles
-- PRIORITÉ: CRITIQUE (violation RGPD)
-- ==========================================

-- 1️⃣ ACTIVER RLS
ALTER TABLE organization_details ENABLE ROW LEVEL SECURITY;

-- 2️⃣ POLITIQUE SELECT : Les membres peuvent voir leur organisation
CREATE POLICY "select_by_org_or_staff"
ON organization_details
FOR SELECT
USING (is_member_of_org(org_id));

-- 3️⃣ POLITIQUE UPDATE : Les membres peuvent modifier leur organisation
-- Note: Dans le code, org_id est exclu des UPDATE via .update({ ...orgData, org_id: undefined })
CREATE POLICY "update_by_org_or_staff"
ON organization_details
FOR UPDATE
USING (is_member_of_org(org_id))
WITH CHECK (is_member_of_org(org_id));

-- 4️⃣ POLITIQUE INSERT : Les membres peuvent créer leur organisation
-- Note: Utilisé lors de la création initiale d'une organisation
CREATE POLICY "insert_by_org_or_staff"
ON organization_details
FOR INSERT
WITH CHECK (is_member_of_org(org_id));

-- 5️⃣ POLITIQUE DELETE : Protection supplémentaire (normalement pas utilisé)
CREATE POLICY "delete_by_org_or_staff"
ON organization_details
FOR DELETE
USING (is_member_of_org(org_id));

-- ==========================================
-- VÉRIFICATION POST-FIX
-- ==========================================

-- Vérifier que RLS est activé
SELECT 
  tablename,
  rowsecurity AS rls_enabled
FROM pg_tables
WHERE tablename = 'organization_details';

-- Vérifier les politiques créées (devrait retourner 4 lignes)
SELECT 
  policyname,
  cmd,
  qual,
  with_check
FROM pg_policies
WHERE tablename = 'organization_details'
ORDER BY cmd;

-- Vérifier les index existants (devrait retourner 3 index sur org_id)
SELECT
  indexname,
  indexdef
FROM pg_indexes
WHERE tablename = 'organization_details'
  AND indexdef ILIKE '%org_id%';

-- ==========================================
-- RÉSULTAT ATTENDU
-- ==========================================
-- ✅ RLS activé: true
-- ✅ 4 politiques créées: SELECT, INSERT, UPDATE, DELETE
-- ✅ 3 index existants sur org_id (performance garantie)
-- ==========================================
