backend
backend copied to clipboard
Somente exibir campo de Contato quando logado(staff ou user)
Descrição
É necessário ocultar o dado de contato(telefone) para o público em geral e restringir para apenas usuários(STAFF
e USER
) para controlar melhor quem visualiza e deixar apenas para pessoal capacitado(registrado).
Solução
Como as guards atuais no controller
(como @UseGuards(UserGuard)
) restrigem totalmente o acesso a aquela rota para usuários registrados foi preciso
- Fazer um decorator(para interceptar a request) para pegar o contexto e retornar o usuário(caso tenha)
- Fazer uma guard para repassar o usuário para o controller
- No controller pegar o usuário e repassar para o service
- ~Então passar para uma função para verificar se o usuário(caso esteja logado) seja um dos permitidos(no momento todos)~ Basta verificar se um usuário é passado no guards(verificar se recebe do contexto de guard
user
,userId
esessionId
) - Caso seja então retorna o
contact
Testes
É preciso fazer uns testes já que modifica alguns pontos e pode quebrar outros. Apesar de testar localmente e não ter quebrado nada os casos recomendados(mais impactados) foram:
- [ ] (Logado) Testar no frontend detalhe de um abrigo: deve aparecer o contato
- [ ] (Não Logado) Testar no frontend detalhe de um abrigo: não deve aparecer o contato