Jump to content

Archived

This topic is now archived and is closed to further replies.

Ådriano

Limitar Usuario

Recommended Posts

E ai galera bl?????tenho a seguinte duvida:tenho o meu programinha e queria limitar o usuario, Tenho niveis quando vou cadastrar o usuario então ...cadastro o ususario a senha e o nivel que vai de 1 a 3 .como faço para limitar os itens do menu para os usuarios...uso delphi7 e access..100+Ådriano

Share this post


Link to post
Share on other sites

Eu tenho 3 campos que preencho:usuariosenhanivelneste ultimo eu digito nivel1 por exemplo...então me de uma luz para ficar um pouco mais facil...tenho que criar uma tabela só com niveis???Não consegui entender direito o que você quis me diezr...lembro você que na minha tabela de usuarios só tem este tres campos ...Eu até achei um componente que faz isto tudo sozinho o nome dele é UsercontrolMas para mim usar ele agora eu teria que refazer o programa quase todo devido a certas pendencias do programa....Então o que faço agora????

Share this post


Link to post
Share on other sites

Um exemplo simples de como fazer um controle de usuário seria, criar um tabela de itens de menu, no caso cadastrar todos os itens de menu do seu sistema, precisando somente do código e nome do menu, depois pode criar um cadastro mestre/detalhe, a tabela pode se chamar nivel e permissaoacesso, na tabela nivel somente se precisaria dos campos código e nome, na tabela permissaoacesso precisaria do código do nível e código do menu que será liberado, ambos como chave primária, sendo que dentro desta tabela somente teria os itens de menu que o nível dá acesso, no cadastro de usuário você teria um campo chamado nível, no caso ligado com a tabela de nível. A estrutura ficaria algo do tipo:Usuario -> Nivel -> PermissaoAcesso -> ItemDeMenuO controle você pode fazer no OnShow do seu form principal, sendo que pega o código do nível do usuário logado, busca todos os itens de menu para o nível desejado na tabela PermissaoAcesso, faz um while com estas permissões e vai liberando o menu, podendo setar a propriedade como Enabled = False para bloquear ou Visible = False, vale ainda lembrar de como deve de ficar o cadastro de itens de menu, no caso tera de ter muito controle para não ficar mexendo nos código dos menus, tipo:Digamos que você cadastro o menu de código 1, a descrição dele é Cadastro de Clientes, no seu sistema o menu 1 deverá de corresponder ao cadastro de clientes... Isto é uma forma de fazer entre tantas outras... Basta agora você colocar no papel se acha que no seu sistema iria funcionar algo do tipo...

Share this post


Link to post
Share on other sites

Poxa vida vamos ver se entendi:Tenho que cadastrar todo o meu menu.EX:cadastrarcliente,cadastrar usuario,relatorio,Nota fiscal.Depois????Fiquei meio confuso você não teria um exemplo facil por ai perdido nas suas coisas.Acho que ainda fico meio louco com isso...fiquei meio sem chão agora ...rsrsrsrs.

Share this post


Link to post
Share on other sites

Não tem erro...Se quiser podemos fazer passo a passo o controle e criação...Primeiro cria a tabela de nivel (codigo e descricao)Depois cria a tabela de menu, com o (codigo e descricao)Depois cria a tabela de permissao, nesta tabela terá somente o (codigo do nivel e o codigo do menu) ambos como chave primária e chave estrageira.Cria novo campo na tabela de usuario (codigo do nivel) chave estrangeira com a nivel.Cria um cadastro de nivel, onde que você irá dizer quais menus o nível libera, tipo, pode ser um edit onde o usuário coloca o nome do nivel, e abaixo um grid onde tem os itens de menu que o usuário terá permissao, este grid deve de ter ligação com a tabela de permissao....

Share this post


Link to post
Share on other sites

olha vamos ver.....eu ja CRIEI As tabelas em access .1ª nivel contendo codigo(chave primaria) e permicao .2ªmenu contendo codigo(chave primaria) e permicao.3ª permicao contendo codigo do nivel (chave primaria)e codigo do menu (agora esta de chave estrangeira ñem sei o que é).4ªusuario contendo usuario,senha,codigo do nivel sem chave primaria(pois não entendi bem).Agora as tabelas se for deste jeito estão prontas e apartir dai é com você..

Share this post


Link to post
Share on other sites

beleza... Agora cria uma função que executa um SQL buscando todos os itens de menu q não estão na tabela de permissao para o vível XXX, tipo

 

qry.Close;qry.SQL.Clear;qry.SQL.Add('select *');qry.SQL.Add('from itemmenu');qry.SQL.Add('where not itemmenu.nuitemmenu in (select permissao.nuitemmenu');qry.SQL.Add('													  from itemmenu');qry.SQL.Add('													  where permissao.nunivel = XXX)');qry.Open;

Com a listagem você irá ter os códigos dos itens de menu que devem de ser desabilitados, basta então você dar um while e fazer algo do tipo...

if not qry.IsEmpty then	begin	qry.First;	while not qry.Eof do		begin		case qry.FieldByName('NUITEMMENU').Value of			1:	opcClientes.Enabled:=False;			2:	opcFuncionarios.Enabled:=False;			end;		qry.Next;		end;

no OnShow do seu formulário principal você chama esta função...

Acredito que de certo este código, não testei ele...

Share this post


Link to post
Share on other sites

Não pude testar ainda Problemas particulares....olhando hoje quer dizer que minhas tabelas estão certas...certo????se tiver é só você me dar uma dica de como fazer a tela no delphi...pois ainda não "clariou"...uma outra pergunta seria....tenho 4 tabelas neste banco a qual estou querendo por nivel de usuario...queria eu fazer uma pesquisa usando num forme só um edit e um radiogroup ou coisa do tipo sabe por que???? Pois ai eu não teria que fazer uma tela para cada tabela.....Me compreende.E o nivel de usuario ainda não to entendendo direitinho o que você quer passar...(Sou meio burro ????!!!!!............rsrsrsrsr),Quebre meu galho meu Amigo....

Share this post


Link to post
Share on other sites

Olá, uma boa maneira tb eh você limitar os niveis a nivel de programacao.ex: nivel 1(Administrador)nivel 2(Gerente)Nivel3(Usuario comum)se o nivel do usuario logado for 1 habilita o menu cadastra usuarioja se o nivel do usuario for 2 o menu cadastra usuario ja iria ser desabilitado, e assim por diante.Essa maneira eh boa pra você nao ter de ficar criando sempre uma tabela ou campo novo para definir o q determinado nivel pode ou nao acessar.Me passa seu email q eu manda um pequeno exemplo.

Share this post


Link to post
Share on other sites

Eu vi la mas nãe entendi muito bem....pois tinha que fazer rodar aqui ....e ver com calma...Complicado o negócio aqui ........rsrsrsrspensei eu que era mais facil um poucoteria que instalar o ibconsole tb ????pois aqui eu não instalei...

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.