-- Correctif : REVOKE EXECUTE FROM PUBLIC
-- Le REVOKE précédent ciblait anon/authenticated directement, mais ces rôles
-- héritaient encore du grant PUBLIC accordé par défaut à la création de la fonction.
-- La révocation sur PUBLIC supprime l'accès pour tous les rôles non-propriétaires.
-- Le trigger on_auth_user_created reste fonctionnel : PostgreSQL n'applique pas
-- les permissions EXECUTE lors du déclenchement d'un trigger.

REVOKE EXECUTE ON FUNCTION public.dev_schema_info() FROM PUBLIC;
REVOKE EXECUTE ON FUNCTION public.handle_new_user() FROM PUBLIC;

DO $$ BEGIN
  IF to_regproc('rls_auto_enable') IS NOT NULL THEN
    EXECUTE 'REVOKE EXECUTE ON FUNCTION public.rls_auto_enable() FROM PUBLIC';
  END IF;
END $$;
