Permissão de usuário

Pessoal, alguma dica de como se trabalhar com permissão de usuários em JSF?
Pensei em algo como montar o usuário dinamicamente através do banco de dados.

Existem várias formas de se fazer isto. Eu bolei uma, que é tranquila de entender e fazer. Não deve ser a melhor mas, está aí: Você tem uma tabela de usuário, outra de perfil e outra de permissão.

Usuario: { login, senha} Perfil: { enum PerfilType} PerfilType: { gerente, atendente, caixa, etc } Permissao: { nome, cod }

Relacionamento: Usuario (1xN) Perfil Perfil (1x1) PerfilType Perfil (NxN) Permissao

Daí posso fazer o seguinte: O usuario X tem o perfil Caixa { Permissao1, Permissao2, Permissao 3 …} Se eu quiser adicionar uma permissao específica para um Usuário além de seu perfil, basta criar um novo perfil, herdar a permissao, e adicionar esta permissao desejada. Logo ele terá 2 perfis, sendo um exclusivo…

Bom, eu faço assim e funciona direitinho… A desvantagem que tem eh que usuários ficam presos aos perfis… Ou seja, não podem incluir uma permissao isolada de perfil. Se quiser adicionar isto para uma maior flexibilidade, basta apenas criar um relacionamento direto entre Usuario e Permissao (N x N). Particularmente eu não gosto de utilizar assim pois vc terá de fazer um protótipo muito bom e claro, para o usuário não ficar “perdido” na hora de criar e setar as permissões… =)

Abraço,