Skip to main content

Minha conta

Aqui você mantém seus próprios dados — pessoais, médicos e de segurança — e os códigos internos que usa em cada unidade. É a experiência de tela do que o backend documenta em Perfil próprio — API e em Código interno — API.

Aba Dados pessoais de "Minha conta", perfil administrator

Para quem é (personas)​

PersonaQuem éO que faz aqui
Qualquer pessoa autenticadatodo usuário do Portal, independentemente do papelmantém nome, contato, dados médicos, senha, MFA e e-mail de recuperação
Gestor (modo "outro usuário")quem abre /account/<uuid> de outra pessoavê e edita alguns dados de terceiros — com restrições, ver Modo gestor abaixo

Histórias das personas​

💬 Como usuário do Portal, quero corrigir meu telefone e trocar minha senha sem precisar pedir para o administrador, porque são dados só meus.

  • Qualquer pessoa autenticada: "Troquei de celular e preciso atualizar meu telefone de contato e reconfigurar o MFA — faço tudo isso em Minha conta, sem depender de outro perfil."

Como acessar​

  1. Clique no seu avatar, no canto superior direito, e escolha Minha conta.
Caminho na telaRota
Avatar (topo direito) › Minha conta/account → redireciona para /account/me
Aba Dados pessoais/account/me/personal
Aba Dados médicos/account/me/professional
Aba Segurança/account/me/security
Aba Códigos internos/account/me/internal-codes

:::info Quem vê esta opção O item Minha conta não tem nenhum gate de permissão — está disponível para qualquer pessoa autenticada, inclusive durante o fluxo de cadastro obrigatório de MFA (nesse caso, o menu do avatar mostra só Sair, sem as outras opções). O comando de navegação é this.router.navigate(['/account']), direto no código do topbar (toolbar.component.ts:122). :::

Permissões que liberam cada ação​

AçãoPermissão necessária
Ver e editar os próprios dados pessoais/médicos/segurançanenhuma — é sempre sobre o próprio usuário (subject do token)
Ver/editar dados de outro usuário em /account/:userIdquem navegou até lá já precisa ter alguma permissão de gestão sobre esse usuário — a própria tela /account/:userId não checa uma permissão adicional além de estar autenticado (authGuard); ela confia em quem a abriu
Ver/editar códigos internos de outro usuáriointernal-code:write na unidade — ver Código interno — API

Caminho principal​

1. Dados pessoais​

Nome, e-mail (somente leitura — trocar e-mail é um fluxo separado de verificação), CPF, telefone, data de nascimento e foto. Essas seções são as mesmas para qualquer papel — confirmamos a mesma tela, com os mesmos campos, tanto com o perfil administrator (acima) quanto com doctor, que na tela de Gerenciar usuários tem acesso bem mais restrito:

Aba Dados pessoais, perfil doctor — mesma tela, mesmos campos

2. Dados médicos​

CRM/licença profissional e estado de registro.

Aba Dados médicos, perfil administrator

3. Segurança​

Troca de senha, verificação de e-mail, e-mail de recuperação e configuração/reset de MFA. O fluxo de configuração de MFA (QR Code, chave manual, código de 6 dígitos) já está documentado em MFA — Autenticação; esta página não repete os passos, só confirma que o ponto de entrada é a aba Segurança de Minha conta.

Aba Segurança, perfil administrator: troca de senha, verificação de e-mail, e-mail de recuperação e MFA

4. Códigos internos​

Cadastre um identificador curto (não-UUID) para você mesmo em qualquer unidade à qual pertença, ou para outro usuário se tiver internal-code:write naquela unidade.

Aba Códigos internos, perfil administrator

Modo gestor (contas de terceiros)​

A rota /account/:userId (qualquer UUID no lugar de me) existe para um gestor abrir a conta de outro usuário. Mas nem toda seção acompanha esse modo — confirmado em código (account-user.resolver.ts:13-26 e no teste dedicado account-manager-mode.spec.ts):

:::danger Achado confirmado em código (não reproduzido ao vivo) As seções Códigos internos, Favoritos, Busca padrão e as mutações de MFA são caller-scoped no BFF — ou seja, o backend deriva o usuário a partir do próprio token, ignorando qualquer userId da URL. Renderizá-las no modo gestor faria a pessoa acreditar que está vendo e editando os dados de outra pessoa, quando na verdade estaria sobrescrevendo os próprios dados — um botão "Desativar MFA", por exemplo, derrubaria o TOTP de quem clicou, não do usuário-alvo. Por isso essas seções só existem no modo próprio (isSelf(routeUserId)); no modo gestor elas simplesmente não aparecem. As abas Dados pessoais, Dados médicos e o restante de Segurança continuam funcionando em modo gestor.

A confirmar — responsável: time de frontend; data: 24/09/2026: não identificamos, neste levantamento, qual tela navega para /account/:userId (não é a lista de Usuários, que edita inline por modal) — o achado acima vem da leitura do código e do teste account-manager-mode.spec.ts, não de navegação ao vivo. :::

Validações​

SituaçãoOnde é validadaComportamento
Nome em brancoFrontendBotão Salvar desabilitado
Senha nova fora da políticaFrontendMensagem de regra abaixo do campo, passwordStrengthValidator
Senha atual incorreta ao trocar senhaBackendToast de erro, campo permanece preenchido para nova tentativa
E-mail de recuperação inválidoFrontendMensagem de e-mail inválido

Caminhos alternativos e falhas​

SituaçãoO que aconteceComo recuperar
Sessão expira enquanto editaPróxima ação redireciona para o loginFaça login de novo; dados não salvos se perdem
Tentar ver Códigos internos/Favoritos/Busca padrão em modo gestorA seção não aparece — mensagem ACCOUNT.MANAGER_MODE_UNAVAILABLEPeça para a própria pessoa acessar /account/me

Informações técnicas​

Rota da tela: /account/me/* (modo próprio), /account/:userId/* (modo gestor, cobertura parcial) · Acesso: autenticado; sem permissão adicional no modo próprio

Rotas de API consumidas: GET/PATCH /users/me, PUT /users/me/professional-license, GET /users/me/security, POST /users/me/email-verification, PATCH/DELETE /users/me/recovery-email, POST /users/internal-codes, GET /users/:userId/internal-codes, PATCH/DELETE /users/internal-codes/:internalCodeId.

→ Detalhe das rotas: Perfil próprio (Back), Código interno (Back)

Relacionado​