PERMISSOES DE ACESSO

MHDSERAFS 07/07/2011 02:43:37
#378618
galera...
bom dia!!!

A muito tempo que procuro uma ajuda ou exemplo de controle de acesso para usuarios... estou usando sql..
gostaria de fazer da seguinte forma:
no listbox - carregar os nomes dos usuarios - tabela usuarios - como carregar apenas os nomes da tabela
no checkboxlist - carregar as empresas cadastradas no sistema - tabela empresa - como carregar apena o nome da empresa
no treeview - carregar os modulos: cadastros (incluir,alterar,excluir,imprimir) ,consultas, relatórios(visualizar,imprimir), entre outras opções - devo criar quais tabelas (modulos e permissoes?) -

no cadastro do usuario tambem selecionar o perfil
perfil adminstrador, usuario, entre outros
e ao selecionar o perfil ja vir pré definido os acessos, podendo ser alterado manualmente pelo administrador

em anexo a imagem do form de como gostaria que fosse

tambem seleciono a empresa, pois tem usuarios que não podem acessar dados de uma determinada empresa (concorrencia entre usuarios, rsrs)

alguem tem algum exemplo proximo ou ideia de como fazer isto?
PEGUDO 07/07/2011 08:02:39
#378620
Cara, para permissao de acesso eu utilizo muito os números, desta forma:
1 - Administrador (Acesso total)
2 - Gerentes, etc... (Acesso moderado)
3 - Usuário (Acesso restrito)

Então, todas as tabelas, inclusive nos dados do funcionário, terá um campo, chamado [Ô]permissoes[Ô], por exemplo, que conterá o nº relacionado ao que o usuário é.
assim, o programa poderá carregar somente as tabelas cujos campos [Ô]permissoes[Ô] sejam iquais à permissão do usuário.

Para preencher o lstUsuario, você pode fazer assim (Vou utilizar ADO como exemplo e sua idéia de ativo, sendo 1 para ativo e 0 (zero) para não-ativo):

[txt-color=#0000f0]Dim[/txt-color] Conexao [txt-color=#0000f0]As New [/txt-color]ADODB.Connection, RecSet [txt-color=#0000f0]As[/txt-color] RecordSet

[txt-color=#0000f0]With[/txt-color] Conexao
.Provider = [txt-color=#e80000][Ô]Microsoft.Jet.OLEDB.4.0[Ô][/txt-color]
.ConnectionString =[txt-color=#e80000] [Ô]Caminho_Do_Banco_de_Dados.mdb[Ô][/txt-color]
.Open()
[txt-color=#0000f0]End With[/txt-color]

RecSet = Conexao.Execute([txt-color=#e80000][Ô]SELECT * FROM tblFuncionarios WHERE ativo=1[Ô][/txt-color])

[txt-color=#0000f0]While Not[/txt-color] RecSet.EOF
lstUsuario.Items.Add(RecSet([txt-color=#e80000][Ô]funcionario[Ô][/txt-color]).Value.ToString)
RecSet.MoveNext()
[txt-color=#0000f0]End While[/txt-color]

RecSet.Close()
Conexao.Close()

Claro que isto é um exemplo de como você pode usar estes comandos.
Espero ter ajudado.
MHDSERAFS 07/07/2011 08:38:29
#378625
então...
carregar os dados no listview e no checkboxlist eu faço .... o meu maior problema é que não sei como carregar o treeview e quais tabelas devo criar para ter as permissões...
ACHO QUE devo criar as tabelas:
modulos, - conter os formularios do sistema
permissoes - conter as opções do formulario (incluir, alterar,excluir...)
perfil - conter se a pessoa é adm, usuario...
usuarios - conter os dados do usuario e se é ativo ou não

o perfil em si é apenas para distinguir ou melhor facilitar o cadastro de permissoes: exemplo
se adm tem acesso a tudo,
usuario apenas algumas opções habilitadas mas podendo ser adicinado ou excluido as opções no treeview
KERPLUNK 07/07/2011 08:55:01
#378627
Resposta escolhida
A melhor solução pro seu caso é o Membership Provider
MHDSERAFS 07/07/2011 09:33:51
#378633
como faço para carregar os dados no treeview
tenho 2 tabelas

rotinas e permissoes

tabela rotina: campos
id_rotina
rotina
desc_rotina

tabela permissões: campos
id_permissao
id_rotina
incluir - sim/não
alterar - sim/não
excluir - sim/não

gostaria de fazer o nó princial com a rotina e sub no com as permissoes

grato
Tópico encerrado , respostas não são mais permitidas