ESPECIFICAÇÃO TÉCNICA 005: ATRIBUIR PERMISSÃO DE ACESSO

ETE: 005
Título: Atribuir Permissão de Acesso
Autor: Samara Delboni samara.delboni@saude.gov.br
Autor: Viviane Alves alves.viviane@saude.gov.br
Autor: Alexandre Lage alexandre.lage@saude.gov.br
Revisor: Jessé Azevêdo jesse.azevedo@saude.gov.br
Status: Em validação
Versão: 1.0

Histórico de Revisões

Versão Data Autor Descrição
1.0 14/08/2024 Samara Delboni Criação do documento
1.1 10/04/2025 Jessé Azevêdo Atualização do documento

História de Usuário

Como usuário quero atribuir um perfil de acesso às funcionalidades do sistema para outro usuário.

Motivação

Para que o usuário do e-SUS AF possa acessar recursos restritos em um contexto de uma aplicação, é necessário que o mesmo possua uma permissão. Diz-se que uma permissão de acesso é o conjunto que engloba um ente, um estabelecimento e um perfil de acesso, permitindo a quem o possui realizar ações dentro da aplicação.

Uma permissão de acesso pode ser atribuída sem necessariamente estar vinculada a um ente e estabelecimento, desde que respeitadas algumas regras de forma a fazer com que o contexto no qual o usuário está inserido faça sentido. Um contexto por sua vez, é um conceito mais amplo e diz respeito à amplitude de ações que o usuário pode realizar dentro do sistema, no e-SUS AF há 3 contextos distintos, o contexto global, contexto de ente e contexto de estabelecimento. Diz-se que um usuário está em contexto de estabelecimento quando as ações realizadas pelo mesmo se restringem a um dado estabelecimento de saúde, em contexto de ente, quando suas ações afetam um ente como um todo e em contexto global quando suas ações afetam a aplicação como um todo, independente de ente ou estabelecimento.

Em posse desses conceitos, passamos ao conceito de atribuição de permissão. Trata-se de um recurso onde, um usuário uma permissão de acesso ao sistema. Apenas usuários com perfil que possua o recurso "ROLES:ASSIGN" é capaz de atribuir permissões de acesso a outros usuários. O sistema deve permitir que o usuário atribua permissões de acesso a outros usuários, desde que respeitadas as regras de atribuição de permissão que serão descretas no tópico Critérios de Aceitação.

Implementação

A funcionalidade de atribuição de permissão de acesso é uma funcionalidade que deve ser acessada através do menu lateral no item “Controle de Acesso”, subitem “Moderar Perfil”, na tela “Consultar Permissões de Acesso”, quando acionar a opção “Novo”.

As regras de atribuição descritas no item Critérios de Aceitação parágrafo 10 deverá ser controlada pelo frontend da aplicação de forma fácil e intuitiva.

Quanto aos parágrafos de 3 a 9, deverão contar com recurso específico no backend a fim de controlar a atribuição de perfis de acesso, evitando que o usuário atribua um perfil que não seja permitido. O Backend deverá implementar recursos específicos que viabilizem a consulta as regras e suportem a implementação do frontend.

Protótipo de Tela

Atribuição de Perfil

Critérios de Aceitação

  1. O usuário somente poderá acessar a funcionalidade caso tenha permissão; RGN001
  2. O acesso à funcionalidade é dado através do menu lateral no item “Controle de Acesso”, subitem “Moderar Perfil”, na tela “Consultar Permissões de Acesso”, quando acionar a opção “Novo”;
  3. O sistema deve permitir a atribuição de perfis conforme:
  4. O perfil de "Instalador" não pode ser atribuido ou solicitado por quaisquer usuário no contexto da aplicação;
  5. Um usuário com perfil de “Instalador” poderá atribuir somente perfil de “Administrador”;
  6. Usuário com perfil de “Administrador” atribui perfil de “Administrador” e “Gestor”;
  7. Usuário com perfil de “Gestor” poderá atribuir os perfis de "Gestor", "Gestor de Estabelecimento", "Farmacêutico", "Atendente", "Administrativo" e perfis personilizados criados para o ente;
  8. Usuário com perfil de “Gestor Estabelecimento” poderá atribuir os perfis de "Gestor de Estabelecimento", "Farmacêutico", "Atendente", "Administrativo" e perfis personilizados criados para o ente;
  9. Perfis personalizados não poderão atribuir ou moderar outros perfis;
  10. Um perfil deve ser atribuído de acordo com o contexto em que o usuário está inserido conforme segue:
    • Os perfis "Gestor de Estabelecimento", "Farmacêutico", "Atendente" e "Administrativo" devem ser atribuídos junto a um estabelecimento específico;
    • O perfil Gestor deve estar vinculado apenas a um ente, não podendo ser atribuido a um estabelecimento;
    • A aplicação não exercerá quaisquer controle sobre perfis personalizados, devendo o usuário que atribui o perfil personalizado ter ciência de quais permissões estão atreladas a este perfil e o contexto ao qual o mesmo se propõe a atender;
    • Perfi Administrador não poderá ser atribuído a ente e estabelecimento, vinculando-se ao contexto global da aplicação;
  11. Um usuário não poderá possuir mais de um perfil para o mesmo estabelecimento; RGN054 MSG085
  12. Quando o usuário acionar a opção “Atribuir”, o sistema deve atribuir o perfil de acesso ao sistema, gravar o estado do registro como “Ativo” e a situação como “Aprovado” e retornar para a tela de consultar permissões de acesso; MSG082 MSG086
  13. O sistema deve gravar a data, hora e CPF e nome do usuário que a executou qualquer ação de alteração no estado do registro. RGN005

Modelo de Dados

Entidade: Permissão de Acesso

Nível Atributo Descrição Cardinalidade Tipo de Dado Tamanho Formato / Observação
1 Instância Identificador do ente ao qual o usuário será vinculado (0, 1) number - -
1 estabelecimento Identificador do estabelecimento ao qual o usuário está vinculado (0, 1) number - -
1 perfil perfil atribuído / solicitado pelo / ao usuário (1, 1) number - -
1 cpf CPF do usuário da aplicação a quem se está atribuindo o perfil (1, 1) number - -
1 status INDICA A SITUAÇÃO DA PERMISSÃO SOLICITADA (1, 1) enum - S - SOLICITADA / A - APROVADA / R - REPROVADA / I - INATIVA
1 Justificativa Solicitação JUSTIFICATIVA DA SOLICITAÇÃO DE PERMISSÃO (0, 1) string - -
1 Justificativa moderação Justificativa da negativa de moderação da permissão solicitada (0, 1) string - -

Entidade: Atribuição Perfil

Nível Atributo Descrição Cardinalidade Tipo de Dado Tamanho Formato / Observação
1 Perfil de origem Identificador do perfil com permissão para atribuição (1, 1) number - -
1 Perfil de destino Identificador do perfil que pode ser atribuído (1, 1) number - -