budget-view-finance/supabase/migrations/20250615214805-b5c952dd-377d-4caf-a0d8-ac185d484846.sql
gpt-engineer-app[bot] 5a1e6a222d Apply RLS policy for transaction inserts
Enforce trial period and payment checks for transaction inserts using RLS.
2025-06-15 21:48:12 +00:00

24 lines
873 B
SQL

-- 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;