como modelar Usuario/Administrador em um sistema web  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
bonfarj
Java Ninja
[Avatar]

Membro desde: 28/03/2006 09:55:47
Mensagens: 298
Offline

O sistema que estou desenvolvendo (Struts 1.2.x e Hibernate 3.2) possui uma classe Usuario, que por sua vez está ligada a uma classe GrupoUsuarios, onde estão as permissões de acesso. Os desenvolvedores acessam o sistema com uma conta "administrador", um usuário que está dentro de um grupo com todas as permissões.

O problema é que isso não será mais suficiente, teremos algumas telas do sistema que um usuário não poderá ter permissão. Nossa equipe pensou em resolver o problema com a criação de uma nova classe, Administrador. Após pensar em inúmeras questões que devem ser consideradas, pensamos em três formas de fazer isso:

Solução 1
Usuario (classe concreta no Java e abstrata no Hibernate)
UsuarioComum estende Usuario
UsuarioAdministrador estende Usuario

Solução 2
Usuario (classe abstrata)
UsuarioComum estende Usuario
UsuarioAdministrador estende Usuario

Solução 3
Usuario (classe concreta)
Administrador estende Usuario

Imagino que essa seja uma situação comum e muitos dos usuários do GUJ já tenham vivenciado isso. Alguém poderia dar uma luz?

Abraços a todos!

IGOR BRITO ALVES
@igoralves
AvilaCS
Thread.start()
[Avatar]

Membro desde: 03/02/2007 18:28:12
Mensagens: 43
Localização: São Paulo
Offline

O sistema que estou desenvolvendo (Struts 1.2.x e Hibernate 3.2) possui uma classe Usuario, que por sua vez está ligada a uma classe GrupoUsuarios, onde estão as permissões de acesso. Os desenvolvedores acessam o sistema com uma conta "administrador", um usuário que está dentro de um grupo com todas as permissões.

Se entendi bem, você precisa de outro conjunto de direitos (permissões de acesso) e não alterar ou criar novos tipos de usuários e consequentemente alterar a sua estrutura de classes.

E se amanhã aparecer um usuário que tem um perfil de acesso diferente, você criará uma classe para representá-lo?

Pense nisto.


____________________________________
Jossemar Ávila de Morais
jossemar.avila@siriussoftware.com.br

Sírius Software
Visite: www.siriussoftware.com.br

Insista, persista e nunca desista pois um dia você conquista.
[WWW]
bonfarj
Java Ninja
[Avatar]

Membro desde: 28/03/2006 09:55:47
Mensagens: 298
Offline

AvilaCS wrote:
O sistema que estou desenvolvendo (Struts 1.2.x e Hibernate 3.2) possui uma classe Usuario, que por sua vez está ligada a uma classe GrupoUsuarios, onde estão as permissões de acesso. Os desenvolvedores acessam o sistema com uma conta "administrador", um usuário que está dentro de um grupo com todas as permissões.

Se entendi bem, você precisa de outro conjunto de direitos (permissões de acesso) e não alterar ou criar novos tipos de usuários e consequentemente alterar a sua estrutura de classes.

E se amanhã aparecer um usuário que tem um perfil de acesso diferente, você criará uma classe para representá-lo?

Pense nisto.


Oi, AvilaCS!

Como eu falei, já temos uma estrutura de permissões de acesso, cada grupo tem um conjunto de permissões. A questão é que sentimos necessidade de ter um usuário a parte (administrador), com algumas peculiaridades. Por exemplo, no nosso sistema, podemos configurar um grupo de usuários de forma que seus membros possam modificar as permissões de outros grupos (administrador/cliente). No entanto, é necessário que exista um usuário que fique acima disso, que tenha permissão pra tudo e não possa ser alterado (administrador/minha empresa).

Acabamos optando pelo que chamei de "solução 2", ela tinha alguns problemas que conseguimos resolver bem depois de muito discutir sobre o modelo. De qualquer forma eu agradeço ao pessoal que leu e ao AvilaCS que postou, fica o tópico aqui para alguém que possa precisar de ajuda com questões relacionadas a isso mais a frente.

Abraços a todos!

IGOR BRITO ALVES
@igoralves
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team