espace-paie-odentas/migrations/fix_payslips_rls_for_staff.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

23 lines
833 B
SQL

-- Migration: Corriger la fonction is_staff pour vérifier is_staff = true
-- Date: 2025-11-28
-- Description: La fonction is_staff ne vérifie pas si is_staff = true, elle vérifie seulement l'existence dans staff_users
-- Corriger la fonction is_staff
CREATE OR REPLACE FUNCTION public.is_staff()
RETURNS boolean
LANGUAGE sql
STABLE
AS $function$
select exists (
select 1 from public.staff_users su
where su.user_id = auth.uid()
and su.is_staff = true -- AJOUT de cette condition critique
);
$function$;
-- Commentaire pour documenter la correction
COMMENT ON FUNCTION public.is_staff() IS
'Vérifie si l''utilisateur actuel est un staff user (is_staff = true)';
-- Note: Cette correction affecte toutes les policies RLS qui utilisent is_staff()
-- y compris les policies sur payslips via is_member_of_org()