A permissão de cada perfil (Gestor, Médico, Recepção, Desenvolvedor) é verificada em toda rota da API, não apenas escondida na interface. Mesmo que alguém tente acessar uma rota diretamente, o servidor recusa se o perfil não tiver permissão para aquela ação.
Saiba mais sobre controle de acesso
Esconder um botão na tela não impede alguém de chamar a rota por trás dele — por isso a checagem de permissão acontece de novo no servidor, em toda requisição, independente do que a interface mostra.
Na prática, cada rota da API passa por duas camadas antes de tocar qualquer dado:
- Sessão válida — o token de sessão é verificado antes de qualquer outra coisa. Sem sessão, a resposta é recusada (401), nem chega perto da lógica da rota.
- Permissão para aquele módulo ou ação — o perfil da sessão (Gestor, Médico, Recepção, Desenvolvedor) é comparado contra o que aquela rota específica exige. Um médico tentando acessar uma rota do módulo Financeiro recebe 403 (Acesso negado), mesmo tendo uma sessão válida.
Há ainda uma terceira camada em rotas que lidam com dados de um paciente específico: mesmo um médico com acesso ao módulo clínico só enxerga prontuários de pacientes com quem já teve algum agendamento — um médico não consegue abrir o prontuário de um paciente que nunca atendeu, só porque adivinhou o identificador dele.