Filtrar itens de um menu com base na Role do usuário

2 respostas
jcranky

Estou montando um menu com alguns items que só devem ser exibidos para um determinado Role do Sistema. O sistema está bem dividido seguindo o modelo MVC e estamos usando segurança declarativa. Pensei em duas opções para implementar esse menu:

[list]Eu implementaria uma ação que seria executada antes de o menu ser exibido, e essa ação iria verificar as Roles do usuário (fazendo a chamada às classes de negócio adequadas) e colocaria na sessão uma lista com os itens do menu e as ações que cada item chama (talvez uma lista com JavaBeans encapsulando essas informações).[/list]

[list]Eu implementaria uma custom tag que faria a verificação e retornaria o html com os links para as ações.[/list]

Eu pessoalmente prefiro a primeira opção, parece mais adequado ao modelo MVC e bem mais flexível. Porém a segunda opção parece mais simples de se implementar. O que vocês acham? Qual das opções seria melhor? Ou talvez haja alguma outra idéia mais interessante?

Obs: Colocar isUserInRole direto no JSP está fora de cogitação, pois obrigaria a alteração da visão se eu quisesse alterar as regras de permissão…

2 Respostas

cv1

As custom tags (ou se vc tiver sem saco, uma View Helper ja ta de bom tamanho) sao uma solucao melhor, pq vc continua tratando um problema da view (que itens mostrar no menu?) na view, ao inves do controller. :slight_smile:

jcranky

Mas até que ponto isso é um problema exclusivo da View? Pois os itens a serem mostrados dependem totalmente da lógica de permissões do sistema, e isso não é parte da lógica de negócios?

Criado 6 de junho de 2005
Ultima resposta 7 de jun. de 2005
Respostas 2
Participantes 2