Fórum Pular a senha de login do UserControl #371909

02/07/2009

0

Pessoal, meu problema: [b:17c0192058]preciso[/b:17c0192058] de usar os controles de usuário do [b:17c0192058]UserControl[/b:17c0192058], mas a [b:17c0192058]tela de login precisa ser a minha[/b:17c0192058].

Por isso fiz uma tela de login onde após clicar no OK ele faz a seguinte validação:

Usuario := UserControl1.VerificaLogin(´admin´,´admin´); //usuário e senha

   if Usuario = 0 then //existe!
   begin
      Application.MessageBox(´OK´, ´OK´, MB_OK);

     //Como eu aplico as permissões?
   end else
   begin
      Application.MessageBox(´NAO´, ´NAO´, MB_OK + MB_ICONSTOP);
   end;


Meu problema/dúvida é que agora, após validar o usuário, eu preciso aplicar as permissões mas todo o código do UserControl pega os dados do formulário dele e estou com dificuldades de passar meu login e senha para ele. Alguma sugestão de como eu faço isso?


Willian

Willian

Responder

Posts

03/07/2009

.lg.

Aqui na empresa e até em casa costumo criar uma classe usuario. Assim na tabela cada campo corresponde a um tipo de permissão, onde ´S´ é permitido e ´N´ não é permitido.
A classe é mais ou menos assim:
TUsuario = Class
  fCodigo: Integer;
  fNome: String;
  fMaster: Boolean;
  fCadastro: Boolean;
private
  procedure ApplyValues;
Public
  Property Codigo: Integer read fCodigo write fCodigo;
  Property Nome: Integer read fNome write fNome;
  Property Master: Integer read fMaster write fMaster;
  Property Cadastro: Integer read fCadastro write fCadastro;
end;


Quando já validado o usuário... eu uso a [b:7c2fcd258a]procedure ApplyValues[/b:7c2fcd258a] para atribuir ao usuário logado as suas permições, e assim uso a variável do tipo TUsuario para sempre ver se o usuario tem ou não a permição.

procedure TUsuario.ApplyValues;
begin
  //no caso acredito que pegue os valores da table por uma query
  codigo := ADOTableCodigo.Value;
  nome := ADOTableNome.Value;
  Master := (ADOTableMater.Value = ´S´);
  Cadastro := (ADOTable.Value = ´S´);
end;

Você pode fazer com o login e a senha. Poderia criar uma classe do tipo TLogin so com login e senha como propriedade. :wink:

Espero que ajude.
Qlqr coisa, basta falar.
.LG.


Responder

Gostei + 0

03/07/2009

Willian

Mas aí vc fez um processo separado do UserControl.... eu quero pular a tela do UserControl mas forçar o processo de validação dele mesmo. Tem alguma idéia?


Responder

Gostei + 0

03/07/2009

.lg.

Isto é porque eu não uso o [color=blue:25788ae482]UserControl[/color:25788ae482].
vou ficar lhe devendo essa amigo. Mas ficaí a idéia caso queira. :wink:

Desculpe e boa sorte.
Abraços,
.LG.


Responder

Gostei + 0

03/07/2009

Willian

Pessoal, resolvi meu problema, mas sem pular a tela de login: eu fiz com que o UserControl usasse a minha.

Fiz o seguinte: copiei os arquivos LoginWindow_U.pas e LoginWindow_U.dfm (que são os arquivos da tela de login do componente) para a pasta do meu projeto - assim forço a compilação a ler os arquivos da minha pasta e não o do componente -, adicionei esses arquivos ao projeto e modifiquei-os conforme eu precisava, deixando a tela de login do componente idêntica àquela que eu tinha feito.

Eu não queria partir pra esse lado, queria adaptar o código do UserControl para usar qualquer tela de login mas como a dor de cabeça ia ser grande e o tempo inversamente proporcional eu resolvi assim.

Se no futuro alguém tiver o mesmo problema é só seguir a dica.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar