@startuml
left to right direction
actor "Usuário" as Usuario
actor "Administrador" as Adm
actor "Usuário Comum" as Comum
Adm --|> Usuario
Comum --|> Usuario
rectangle "Sistema de Autenticação" {
usecase "Inserir credenciais" as UC1
usecase "Validar credenciais" as UC2
usecase "Exibir mensagem de erro" as UC3
usecase "Bloquear conta temporariamente" as UC4
usecase "Redirecionar para painel do administrador" as UC5
usecase "Redirecionar para painel do usuário" as UC6
usecase "Solicitar troca de senha (1Âş acesso)" as UC7
}
Usuario --> UC1
UC1 --> UC2
UC2 --> UC5 : [credenciais válidas \n e perfil administrador]
UC2 --> UC6 : [credenciais válidas \n e perfil comum]
UC2 --> UC7 : [primeiro acesso]
UC2 --> UC3 : [credenciais inválidas]
UC2 --> UC4 : [5 tentativas inválidas]
@enduml
"Usuário ou senha incorretos.""Preencha todos os campos obrigatórios.""Erro de conexão. Tente novamente mais tarde.""Conta temporariamente bloqueada por tentativas incorretas. Tente novamente após 15 minutos."| Perfil | Descrição | Acesso ao sistema | | —————– | ——————————————————— | ——————— | | Administrador | Usuário com permissões avançadas de gerenciamento. | Painel administrativo | | Usuário comum | Usuário com acesso limitado às suas próprias informações. | Painel do usuário | | Inativo | Usuário desativado ou bloqueado pelo administrador. | Acesso negado |
@startuml
start
:Exibir tela de login;
:Usuário informa usuário e senha;
if (Campos preenchidos?) then (Sim)
:Validar credenciais;
if (Credenciais válidas?) then (Sim)
:Identificar perfil do usuário;
if (Primeiro acesso?) then (Sim)
:Solicitar troca de senha;
:Usuário troca a senha;
endif
if (Perfil == Administrador) then (Sim)
:Redirecionar para painel administrativo;
else
:Redirecionar para painel do usuário;
endif
else (NĂŁo)
:Exibir mensagem "Usuário ou senha incorretos";
:Incrementar contador de tentativas;
if (Tentativas >= 5?) then (Sim)
:Bloquear conta por 15 minutos;
endif
:Retornar para tela de login;
endif
else (NĂŁo)
:Exibir mensagem "Preencha todos os campos";
:Retornar para tela de login;
endif
stop
@enduml