Ir para conteúdo

POWERED BY:

Arquivado

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

flavioavilela

Unir vários forms em uma classe só...

Recommended Posts

galera, é o seguinte, estou com a seguinte dúvida:

estou montando um sistema e quero implementar um controle de usuário, entao, por exemplo, o usuário do grupo Cadastro, poderá acessar somente os cadastros do sistema, Cadastro de Clientes, Cadastro de Produtos, Cadastro de Cidades e etc.... tem como eu unir todos esses Forms em uma só classe, e, quando o usuário logar no sistema, ele automaticamente já identifica em ql classe está? tipo, sem precisar de testar formulário por formulário pra ver se o usuário pode ou nao entrar, e, criando uma classe pra vários forms, eu vejo se o usuário pode entrar naquela classe... como faria isso??? ou, existe outra forma melhor a se fazer isso???

Compartilhar este post


Link para o post
Compartilhar em outros sites

O mais simples seria você fazer uma marca no cadastro de usuários para saber o tipo de acesso que ele vai ter, algo do tipo:

 

Campo Permissão:

A - Administrador (Total Acesso)

C - Cadastro

R - Recursos Humanos

etc...

 

Baseado neste campo, ao validar o login do usuário, você poderia carregar uma variável global com a permissão de acesso ao usuário e, no form principal do seu programa, onde fica todos seus menus, você poderia chamar no show ou no create do form uma rotina que libera ou inibe os menus que o usuário pode acessar, conforme a permissão de acesso que ele dispõe.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

certo... isso eu já fiz... o usuário se cadastra e marca ql grupo ele permite... qndo loga, ele já carrega uma variável global com o nome da pessoa que está logada mas, como ainda nao fiz, nao carrega sua permissão...

ai, minha idéia é: por exemplo, o usuário NAO pode acessar o Cadastro de Clientes, Produtos, Cidades e Setores... logo, eu quero unir esses forms numa classe só, ai, eu testaria, se o usuário clicou no form Clientes, produtos, cidades ou setores que fazem parte da classe TFormUnidos, por exemplo, ele nao deixar... ai, ao invez dele testar se o usuário clicou no Cadastro de clientes, produtos... ele testa se o usuário clicou no TFormUnidos... entendeu??? ou isso é mto complicado ou inviável???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

Que tal Habilitar e dazabilitar itens de menu e botões de acesso aos forms pela categoria de usuários? você verifica o nível ou classe do usuário e, atraves de uma função(boolean) logo na hora dele entrar no sistema habilita e desabilita certos intens de menu e botões de acesso a determinados forms. É assim que eu faço.... acho que seria melhor do que está sempre lendo as permições do usuário a cada abertura de form.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é mais simples simplesmente você sumir com os menus que o usuário não pode acessar de acordo com o grupo a que ele pertence, fazendo isso numa rotina chamada no form principal? Exemplo:

 

var Permissão: String;

procedure TForm1.EscondeMenus(Permissao:String);
begin
	if Permissao = 'A' then
	begin
		 mnuCadastroClientes.visible := true;
		 mnuRelatoriosXXX.visible := true;
		 mnuFolhaPagamento.visible := true;
		 mnuCadastroUsuarios.visible := true;
		 mnuAlteraSenha.visible := true;
		 ...
	end;
	if Permissao = 'C' then
	begin
		 mnuCadastroClientes.visible := true;
		 mnuRelatoriosXXX.visible := false;
		 mnuFolhaPagamento.visible := false;
		 mnuCadastroUsuarios.visible := false;
		 mnuAlteraSenha.visible := true;
		 ...
	end;
	if Permissao = 'RH' then
	begin
		 mnuCadastroClientes.visible := true;
		 mnuRelatoriosXXX.visible	:= false;
		 mnuFolhaPagamento.visible := true;
		 mnuCadastroUsuarios.visible := false;
		 mnuAlteraSenha.visible := true;
		 ...
	end;
end;

Não vejo porque agrupar todos os forms em uma classe só para isso... é só desabilitar o acesso no menu de aplicação que usuários que não pertençam a um grupo a ou b não irão acessar os forms... o que você quer fazer ao meu ver é complicar só sua vida... você de toda forma terá que ter uma forma de validar se a permissão de acesso aos forms é válida... muito mais simples e prático por essa validação numa única rotina e deixar ela controlar o acesso geral, deixando para você controlar apenas em forms que chamam outros forms depois se a permissão permite acessar ou não a tela chamada...

 

[]'s

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.