Colegas, o troço é complicado hein?!
Estou implementando um sisteminha web acadêmico e logo, logo chegará o momento de fazer a parte do controle de usuários e seus possíveis acessos ao sistema.
Dei uma pesquisada na internet e vi que o negócio não é nada simples, ao menos para o meu nível de conhecimento.
Supondo, a título de exemplo, um sistema com
Cadastro de usuários
Cadastro de clientes
Cadastro de vendedores
Cadastro de produtos
E os seguintes tipos de usuário:
Administrador
Vendedor
Como fazer, por exemplo, com que o administrador tenha acesso a todo o sistema e o vendedor visualize e tenha acesso apenas ao cadastro de clientes e produtos?
Indo um pouco mais além, imaginando um cadastro com clientes de várias regiões, como fazer com que um vendedor logado somente consiga visualizar os clientes de sua região?
O sistema está sendo implementado utilizando Netbeans 7.0. Estou usando JSF.
Dá pra fazer isso sem utilizar ferramentas extras (frameworks) além do que já consta dessa IDE?
voce pode fazer os campos ficarem inativos (que somente o SysAdm ira utilizar) o Funcionario teria acesso a pagina normalmente
porem somente aos campos que lhe são de interesse…
esta condição pode ser passada como regra de negocio por exemplo crie uma class BOUsuario e valide o tipo de usuario e acesso a partir dai…
voce pode tratar isto diretamente no BD ex…
voce tera um campo na sua tabela usuario (Vendedor) com os respectivos campos
um deles sendo endereço provavelmente tera Estado ex SP.
na sua aplicação voce trata na hora de realizar o select…ex
[code]String sql = “select ES_CLIENTE from CLIENTE_SISTEMA where ES_CLIENTE= (?)”;
st = conn.prepareStatement(sql);
st.setInt(1, p.getEstadoUsuario());
ResultSet rs = st.executeQuery();[/code]
ES_USUARIO seria uma FK em clientes ussando como referencia a coluna ES_CLIENTE
aonde voce diria para seu banco que todo cliente possui um vendedor especifico … por região estado no caso
e retorna os estados filtrados em um arrayList sei lá onde voce exibe num grid ou comboBox ai vai da sua imaginação
espero ter dado uma Luz …
qualquer coisa vai postano os codigo que estamos ai:D
Eu li um artigo sobre o Spring Security e achei bastante interessante ao ponto de pensar em incluí-lo no sistema.
Porém surgiu uma dúvida.
O artigo diz que as funcionalidades disponíveis a cada perfil de acesso devem estar armazenadas em diretórios distintos e então o usuário tem ou não permissão de acesso ao diretório.
A dúvida se relaciona às funcionalidades comuns a mais de um tipo de perfil. Como ficaria?
No exemplo que citei, supondo que o Cadastro de Clientes pudesse ser acessível também a usuários com perfil de Administrador como também a usuário com perfil de Vendedor, como ficaria a aplicação?
Aproveitando o tópico…
E se tivesse a necessidade de restringir o acesso ainda mais, não filtrando por tipo de usuários mais pelas permissões de acesso de cado um.
Por Exemplo:
Cadastro de usuários
Cadastro de clientes
Cadastro de vendedores
Cadastro de produtos
Supondo que.:
O usuario 1 teria acesso a Cadastro de usuários e Cadastro de produtos.
O usuario 2 teria acesso a Cadastro de vendedores.
O usuario 3 teria acesso a Cadastro de clientes.
como seria uma implementação pra esse tipo de situação?