Pedro (Usuário B) consegue ver e editar os clientes da Ana (Usuário A)
- Severidade:
- Alta
- Confiança:
- Alta · executado
Impacto
Pré-condições e papel
Passos para reproduzir
- 1Entrar como Ana e criar o cliente “Imobiliária Sol”.
- 2Sair e entrar como Pedro.
- 3Abrir “Meus clientes”: aparece “Imobiliária Sol”.
- 4Mudar a etapa para “fechado” e recarregar: a mudança fica salva no cliente da Ana.
Esperado
Pedro só vê e edita seus próprios clientes; a API rejeita a mudança.
Observado
A lista do Pedro inclui clientes da Ana e a API aceita a mudança (204).
Evidência
GET /rest/v1/clients · Pedro
200 OK · 2 linhas, 1 da Ana
[{ "id": "c_01…", "name": "Imobiliária Sol", "user_id": "<A>" }, …]PATCH /rest/v1/clients?id=eq.c_01… · Pedro
204 No Content · stage: "negociação" → "fechado"SELECT stage FROM clients WHERE id = 'c_01…'
"fechado"Localização técnica
supabase/migrations/20260901_clients.sql · política “Authenticated can read clients”Hipótese de causa
Prompt para corrigir
Cole no Claude, Cursor, Lovable, Bolt ou outra ferramenta.
No meu app, os corretores conseguem ver e editar os clientes de outros corretores. Corrija o acesso à tabela "clients" para que cada usuário só possa ler e modificar seus próprios registros (user_id = auth.uid()), tanto pela interface quanto chamando a API diretamente. - Crie uma nova migração; não edite migrações anteriores. - Se houver um papel de administrador que deva ver tudo, mantenha esse acesso com uma política separada. - Não altere outras tabelas nem outras funções do app. - Ao terminar, explique o que mudou para eu clicar em "Testar de novo" na UserB.
Este achado foi útil?
Usa a nova execução incluída. Neste exemplo nada é executado.