espace-paie-odentas/migrations/force_refresh_is_member_of_org.sql
odentas 8ba984af1d feat: Ajout système de sélection manuelle de paies pour virements + corrections RLS
- Ajout mode de sélection 'period' (existant) et 'manual' (nouveau) pour les virements
- Création table de liaison salary_transfer_payslips pour paies sélectionnées manuellement
- Nouveau modal de sélection de paies avec filtres (recherche, période, statut)
- API route /api/staff/payslips/available pour récupérer les paies disponibles
- Rendre period_month nullable en mode manual avec contrainte de validation
- Correction fonction is_staff() pour vérifier is_staff = true
- Correction is_member_of_org() pour utiliser la version à jour de is_staff()
- Mise à jour génération PDF pour supporter les deux modes (period et manual)
- Filtre des organisations sur virements-salaires (uniquement celles avec virements_salaires = 'Odentas')
- Amélioration affichage totaux dans PayslipsGrid (total sélection si lignes sélectionnées)
- Ajout boutons 'Créer par période' et 'Créer personnalisé' dans SalaryTransfersGrid
- Interface optimisée (textes plus courts, tailles réduites)
2025-11-28 20:12:48 +01:00

30 lines
1,011 B
SQL

-- Migration: Forcer le rafraîchissement de is_member_of_org
-- Date: 2025-11-28
-- Description: Recréer is_member_of_org pour s'assurer qu'elle utilise la version mise à jour de is_staff()
-- D'abord, supprimer la fonction existante
DROP FUNCTION IF EXISTS public.is_member_of_org(uuid);
-- Recréer la fonction avec la bonne logique
CREATE OR REPLACE FUNCTION public.is_member_of_org(target_org uuid)
RETURNS boolean
LANGUAGE sql
STABLE
AS $function$
select public.is_staff() -- bypass total pour le staff
or exists (
select 1
from public.organization_members om
where om.org_id = target_org
and om.user_id = auth.uid()
);
$function$;
-- Commentaire
COMMENT ON FUNCTION public.is_member_of_org(uuid) IS
'Vérifie si l''utilisateur est staff (is_staff = true) OU membre de l''organisation';
-- Tester immédiatement
SELECT
public.is_staff() as is_staff_result,
public.is_member_of_org('fba4ad7b-bac7-4ce3-8707-05d220280fb1') as can_access_via_arte;