Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Duvida - Perfil x Usuario

Fiquei com dúvidas na modelagem da relacionamento entre o usuário e o perfil feitos na aula, o perfil não deveria ser unico (ManyToOne) ex.: perfil admin, owner, development e etc... ou existem cenários que faz sentido um usuário ter mais de um perfil?

1 resposta
solução!

Olá Luiz, toda situação tem de ser analisada nas regras de negócios, mas, em os projetos que já participei faz mais sentido ter umas de um perfil. Por que?

Imagine um modelo fictício abaixo.

Imagine a Alura! Tem perfis de alunos, empresarial, professores, gerentes, super admin.

Logo para ter acesso aos cursos, eu sou assinante, perfil de aluno. Para publicar um curso, tenho que ter o perfil de professor, mas eu não posso ter acesso a todos os cursos, apenas aos que são de minha criação, se o professor quer ver todos os cursos, eles tem que ser assinante, logo o professor passar a ser assinante e professor.

Empresarial: pode ter acesso a alguns módulos/formações, cadastrar ou veicular contas já existentes de funcionários de sua empresar para ter acesso a determinados módulos e dentro de um tempo pre definido.

Um professor não pode deletar seus cursos, mas ele pode descontinuar. Para a exclusão tem de ter perfil de gerente, super admin.

Gerentes acessar todos os cursos: deletá-os/despublica-os, pode desabilitar professores, mas não pode deletar professor, nem publicar cursos.

O perfil de super admin tem acesso full, sem restrições.

De modo geral, perfis servem para restringir níveis de responsabilidades, eu posso ter 1, 2 ou todos.

A aplicação só tem de verificar se dentro os meus perfil contém o nível de permissão necessário para realizar tal operação. Eu posso ter 5 perfis que não tem permissão mas se o 6 perfil tem permissão é o sufiente para a aplicação.

Espero que tenha entendido.

Abç.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software