Apply RLS policy for transaction inserts

Enforce trial period and payment checks for transaction inserts using RLS.
This commit is contained in:
gpt-engineer-app[bot] 2025-06-15 21:48:12 +00:00
parent ad7266b151
commit 5a1e6a222d

View File

@ -0,0 +1,23 @@
-- Corrige a policy de insert na tabela transacoes para usar WITH CHECK
ALTER TABLE public.transacoes ENABLE ROW LEVEL SECURITY;
DROP POLICY IF EXISTS "Permitir inserts apenas para assinantes ou trial" ON public.transacoes;
CREATE POLICY "Permitir inserts apenas para assinantes ou trial"
ON public.transacoes
FOR INSERT
WITH CHECK (
EXISTS (SELECT 1 FROM public.usuarios u WHERE u.email = login)
AND (
(SELECT NOW() < u.created_at + INTERVAL '30 days' FROM public.usuarios u WHERE u.email = login)
OR EXISTS (
SELECT 1 FROM public.pagamentos_mercadopago p
WHERE p.payer_email = login
AND p.status = 'approved'
)
)
);
-- Permissão para os usuários autenticados continuarem acessando normalmente as outras operações
GRANT SELECT, INSERT, UPDATE, DELETE ON public.transacoes TO authenticated;