Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luciano Souza

Melhor maneira de dar permissão de acesso ao administrador de um site

Recommended Posts

Fala ai gente,

procurei, procurei, procurei e não achei...

 

Estou terminando um sistema pra um cliente, onde existem várias funcionalidades. Inserir, editar e excluir em várias áreas diferentes.

 

Hoje, esse sistema tem 3 níveis de permissões:

- Nível 1: onde o cara só ve o que tem, não pode exluir/inserir/alterar nada;

- Nível 2: tem permissão de inserir e alterar em determinadas áreas;

- Nível 3: tem permissão total sobre o sistema.

 

Só que meu cliente precisa de mais, ele quer poder criar permissões e setar o que cada permissão pode fazer, exemplo: Recepção ==>> Pode inserir aqui, não pode exluir ali, aqui pode, aqui também não.

 

Pensei em na hora do cara se logar, criar um array em uma session com todas as acoes que ele tem permissao de acessar, e quando ele não tiver permissão, restringir o acesso.

 

Minha pergunta é, alguem tem alguma outra ideia de como fazer isso, pois na minha cabeça só tenho essa.

 

Obrigado desde já,

 

Luciano Souza

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma tablea de usuários e uma outra de permissões.....

 

Quando o cara se logar, verifique todas as opções que ele pode realizar na tabela de permissões, e construa o menu dele baseado nessas informações...

 

Abraços....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, a tabela de usuarios e de permissões eu ja até tenho, só não tenho ainda uma de ações do site.

 

Mas o menu é o mesmo pra todos, o que muda são as ações que ele pode fazer no site, vamos supor, todos podem ver os clientes cadastrados, mas ver os detalhes, alterar, incluir, só quem tiver permissão de fazer essas coisas, que poderá fazer...

 

Se eu for montar conforme as permissões do banco, sem ser em session, eu vou ter que consultar a cada página, eu vou ter stress na minha base de bobeira... certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então... se você já tem as tabelas de permissões e usuários...

 

No exemplo que você deu.. todos podem visualizar mas so alguns podem incluir, editar e excluir....

 

Quando carregar esta página, você pode consultar o BD de acessos e verificar quem pode ou não fazer as ações... se puder, você mostra o "botão" de incluir, ou alterar... caso contrário, não...

 

Se nao quiser fazer essa verificação a cada requisição da página, monte uma Session para cada ação do Site que depende de uma permissão....

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente é a melhor e não esquece de finalizar a sessão quando o usuário for sair da página

 

session("valor") = null ou session.abandon

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, por conhecidencia estou fazendo um sistema nesse mesmo perfil..

mas na verdade o meu possui essas mesmas características... mas vai ainda mais além... ele possui uma área administrativa... ou seja, o usuário pode até cadastrar informações, mas apenas o usuário homologador aprova ou reprova essas inserções, alterações ou exclusões(mas isso em complexidade vai mais além, do que você quer)... cara confesso que da um trampo do inferno, mas a opção mais interessante que eu achei foi montar uma estrutura no Banco com Quatro tabelas.

 

-Usuário

-Grupo

-Permissões

-Módulo

 

Imagine o Usuário: Thiago

 

-Usuário
ID	 ID_GRUPO	 NOME
1	   10				 Moderadores de Usuários

-Grupo
ID	ID_PERMISSOES
10	12

-Permissões
ID	 ID_MODULO	   PERMISSOES
10	  1					  12345
12	  2					  12340
13	  3					  10000
14	  4					  12000  

-Módulo
ID	 NOME
1	   USUARIO 
2	   GRUPOS 
3	   CURRICULOS 
4	   NOTICIAS   
.
.
...

Então eu monto um uma string contendo a permissão nos respectivos módulos:

 

;1|12345;2|12340;3|10000;4|12000

 

nesse caso, eu desmembro a string(split) no ";" e tenho

 

1|12345

2|12340

3|10000

4|12000

 

então sei que no módulo 1(Usuário) esse usuário tem acesso total:

pois 12345 equivale a:

 

1 Visualização

2 Inserção

3 Alteração

4 Exclusão

5 Publicação

 

logo o usuário 2 não poderá publicar(homologar) nomódulo 2(Grupos/permissões), poderá apenas vizualizar o módulo 3(Curriculos) e poderá visualizar e inserir dados no módulo Noticias.

 

então no começo de cada página eu verifico a permissão dele na página(Módulo).. e atribuo uma variável indicando o nível de acesso dele na respectiva página, assim, utilizo essa "variável" para controlar todos os componentes se devem ou não aparecer...

 

sacou....

melhor eu parar por aqui senão vai virar um tutorial e vou ter que virar um colunista iMasters... hehehehe

 

espero ter ajudado...

qualquer coisa posta aê...

abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.