Apply RLS policy for transaction inserts
Enforce trial period and payment checks for transaction inserts using RLS.
This commit is contained in:
parent
ad7266b151
commit
5a1e6a222d
@ -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;
|
||||||
Loading…
Reference in New Issue
Block a user