Fórum Controle de permissões via TMainMenu #342343
06/06/2007
0
procedure TFUsers.Blockeia(Menu: TMenuItem); Var X: Integer; Aux: String; begin with DataBase.IBUsers do begin Close; SQL.Clear; SQL.Add(´select * from acessos where id_user=´ + QuotedStr(LOGIN_ID_USER)); Open; if (RecordCount = 0) then begin Exit; end; for X := 0 to (Menu.Count - 1) do begin First; while not Eof do begin Aux := Trim(FieldByName(´secao´).AsString); if (Aux = Menu.Items[X].Caption) then begin Menu.Items[X].Visible := False; end; Next; end; if (Menu.Items[X].Count > 0) then begin Blockeia(Menu.Items[X]); end; end; end; end;
ela deve percorrer todo os itens do MainMenu, e deixar eles invisíveis caso eles existam no banco, pois eu to salvando no banco os itens que o usuário não tera acesso.. axei mais simples partir deste principio, apenas utilizara mais rows dependendo da situação..
espero que alguem possa me auziliar.
abraço a todos
Nightshade
Curtir tópico
+ 0Posts
08/06/2007
Nightshade
se alguem poder me da uma ajuda agraedço
Gostei + 0
08/06/2007
Paullsoftware
Gostei + 0
08/06/2007
Nightshade
eu ja fiz todo o sistema de permissoes, cadastro de usuarios, controle de senhas, parte de liberação de seçoes por usuarios.. tudo
apenas preciso de uma rotina q varra todo meu menu, e caso o nome dele for igual o da atual row do banco, ele deixe invisível.
isto ai servira para usuarios q nao tem acesso a determinadas seçoes nao poderem se dar permissao em areas inacessiveis e nem cadastrar novos usuarios com mais nivel q ele..
bolei tudo ja ;P
mas lança a ediçao da revista, derrepente tenha isso nela..
vlw
Gostei + 0
08/06/2007
Logam
Voce conhece o componente User Control??
Ele faz tudo isso que vc falou e precisa e muito mais tem varios recursos entre ele envio de mensagens internas entre os usuarios cadastrados no sistema envio de e-mail com a senha do usuario quando ele esquecer da mesma mediante confirmação é claro!!
e é compativel com varios bancos de dados diferentes
o site oficial é [url]www.usercontrol.net[/url]
e o componete é open source!!
vale a pena conhecer!!
apenas uma sugestão!!
Gostei + 0
09/06/2007
Paullsoftware
pronto ta ai os exemplos da Revista, foi a Edição 76.. controle de acesso com Emerson Valoco
https://www.devmedia.com.br/clubedelphi/downloads/Ed_76.htm
Gostei + 0
11/06/2007
Emerson Nascimento
procedure TForm1.Bloqueia(Menu: TMainMenu); var x: Integer; procedure BloqueiaItensMenu(Item: TMenuItem); var iItem: integer; begin for iItem := 0 to Item.Count-1 do begin Item[iItem].Visible := not DataBase.IBUsers.Locate(´Secao´, Item[iItem].Caption, [loCaseInsensitive]); // se um item estiver invisível, nem analiso os sub-itens if Item[iItem].Visible and (Item[iItem].Count > 0) then BloqueiaItensMenu(Item[iItem]) end; end; begin with DataBase.IBUsers do begin Close; SQL.Clear; SQL.Add(´select * from acessos where id_user=´ + QuotedStr(LOGIN_ID_USER)); Open; // para melhorar a performance, não use (RecordCount = 0) // a menos que você precise saber o número exato de registros if not IsEmpty then for X := 0 to (Menu.Items.Count - 1) do begin Menu.Items[X].Visible := not Locate(´Secao´, Menu.Items[X].Caption, [loCaseInsensitive]); // se um item estiver invisível, nem analiso os sub-itens if Menu.Items[X].Visible and (Menu.Items[X].Count > 0) then BloqueiaItensMenu(Menu.Items[X]); end; end; end;
note que agora deve ser passado o próprio menu como parâmetro da rotina Bloqueia.
Gostei + 0
11/06/2007
Martins
Bons códigos!!
Gostei + 0
12/06/2007
Nightshade
valeu [b:6a31007596]emerson.en[/b:6a31007596] :D
Gostei + 0
30/03/2013
Frederico Brigatte***
Gostei + 0
01/04/2013
Jose Maria
valeu [b:6a31007596]emerson.en[/b:6a31007596] :D
Gostei + 0
01/04/2013
Frederico Brigatte***
Gostei + 0
02/04/2013
Frederico Brigatte***
Teria como me ajudar a fazer esse Controle?
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)