Pular a senha de login do UserControl
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:
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?
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
Curtidas 0
Respostas
.lg.
02/07/2009
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:
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.
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.
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.
GOSTEI 0
Willian
02/07/2009
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?
GOSTEI 0
.lg.
02/07/2009
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.
vou ficar lhe devendo essa amigo. Mas ficaí a idéia caso queira. :wink:
Desculpe e boa sorte.
Abraços,
.LG.
GOSTEI 0
Willian
02/07/2009
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.
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.
GOSTEI 0