Tabela de conteúdos

Especificação Funcional: Permissionamento

Resumo

O sistema irá contará com um serviço de permissionamento que irá definir para cada usuário o que o mesmo pode ver ou fazer.

Descrição

Cada sistema irá definir como irá funcionar o permissionamento, no pré-matrícula web, as permissões são fixas, ou seja, cada perfil de usuário possui suas permissões de acesso, caso seja necessário incluir ou remover permissões será necessário incluir manualmente.

Como funciona?

Basicamente, cada ação do sistema possuíra uma anotação que irá verificar se o usuário logado possui ou não permissão para executa-la, caso não possua, uma tela de acesso negado é exibida.

As permissões foram estruturadas da seguinte forma: Foi usado o Policy Server. Link da documentação aqui.

Permissões nos serviços

Para o usuário acessar determinada funcionalidade o sistema precisa verificar se este usuário possui a permissão necessária. Para isso funcionar, cada serviço do sistema possui as suas permissões, desta forma, sempre que um usuário solicitar o acesso a uma funcionalidade, o serviço irá verificar se o perfil do usuário possui a permissão , caso possua, o usuário poderá acessar a funcionalidade.

Para verificar se o usuário possui ou não a permissão necessária, o cliente (no caso, o prematricula.mvc) envia um token (que contem a perfil do usuário) para o serviço. O serviço recebe este token e o valida.

Abaixo é exibida uma relação das permissões disponíveis para cada perfil agrupadas por serviço:

Obs.: Quando está escrito “todos” está incluído os perfis responsavel, gestor e administrador, com exceção da tecsystem.

PREMATRICULA-API

PermissãoPerfil do usuário
dependentetodos
dependente_createresponsavel
dependente_updateresponsavel
dependente_deleteresponsavel
prematriculatodos
prematricula_ordenargestor, administrador
prematricula_alterarsituacaogestor, administrador
prematricula_createresponsavel
prematricula_delete_idresponsavel
prepararturmagestor, administrador
prepararturma_creategestor, administrador
prepararturma_removerturmagestor, administrador
prepararturma_gerarxmlgestor, administrador
responsaveltodos
responsavel_createresponsavel
responsavel_updateresponsavel
responsavel_deleteresponsavel

PREMATRICULA-CRUD

PermissãoPerfil do usuário
clientetecsystem
cliente_createtecsystem
cliente_updatetecsystem
cliente_deletetecsystem
configuracaotodos
configuracao_creategestor, administrador, tecsystem
configuracao_deletegestor, administrador, tecsystem
cursotodos
escolatodos
modalidadetodos
periodotodos
periodo_creategestor, administrador
periodo_updategestor, administrador
periodo_deletegestor, administrador
prematriculacursocriteriogestor, administrador
prematriculacursocriterio_creategestor, administrador
serietodos
vagastodos
vagas_creategestor, administrador
vagas_updategestor, administrador
vagas_deletegestor, administrador

SCHOOL-CRUD

PermissãoPerfil do usuário
alunotodos
cursotodos
curso_creategestor, administrador
curso_updategestor, administrador
curso_deletegestor, administrador
escolatodos
escola_creategestor, administrador
escola_updategestor, administrador
escola_deletegestor, administrador
etapatodos
modalidadetodos
municipiotodos
serietodos
serie_creategestor, administrador
serie_updategestor, administrador
serie_deletegestor, administrador
serieetapatodos
turmatodos
turma_creategestor, administrador
turma_updategestor, administrador
turma_deletegestor, administrador

PREMATRICULA-WEB

Este é o cliente, contem a parte visual do sistema de pré-matrícula.

Relação Perfil x Permissões
PermissãoPerfil
hometodos
create_clientetecsystem
update_clientetecsystem
delete_clientetecsystem
view_clientetecsystem
list_clientetecsystem
list_usuarioperfiladministrador, tecsystem
update_usuarioperfiladministrador, tecsystem
recuperarusuario_usuarioperfiladministrador, tecsystem
create_dependenteresponsavel
view_dependenteresponsavel, gestor, administrador
update_dependenteresponsavel
list_dependenteresponsavel
create_prematricularesponsavel
list_prematricularesponsavel, gestor, administrador
view_prematricularesponsavel, gestor, administrador
buscar_dependenteresponsavel
delete_dependenteresponsavel
create_rematricularesponsavel
list_rematricularesponsavel, gestor, administrador
view_rematricularesponsavel, gestor, administrador
ordenar_prematriculagestor, administrador
preparar_turmagestor, administrador
logtodos

Autorização para modificar/excluir um dado

Foi criado um serviço para impedir que usuários de mesmo perfil tentem alterar ou excluir informações de outros usuários com o mesmo perfil.

A validação consiste em verificar o GUID do usuário e compara-lo com o GUID do dado, se o GUID for o mesmo a operação poderá seguir, caso não, será lançado uma exceção para impedir que a operação de seja realizada. Existe algumas diferenças nas validações de acordo com o perfil do usuário:

Perfil responsável e administrador

É verificado o GUID do usuário e comparado com o dado, se for o mesmo a operação pode continuar.

Perfil gestor

É usado a role idaministrador(que é o GUID do administrador) do usuário para comparar com o GUID do dado e aprovar ou não a operação.

Obs.: Caso o dado possua o GUID do gestor, é necessário verificar quem é o administrador desse gestor e recuperar o GUID do administrador, isso para sempre termos como parâmetro um GUID comum para esses dois tipos de usuário (administrador/gestor).

FLUXO