unit uEditorCambiarPassword; interface uses Forms, UCBase, ExtCtrls, Classes, ActnList, StdCtrls, Controls, Buttons, uBizUsuarios, uUsuariosController; type TfEditorCambiarPassword = class(TForm) lbSenhaAtu: TLabel; lbNovaSenha: TLabel; lbConfirma: TLabel; EditAtu: TEdit; EditNova: TEdit; EditConfirma: TEdit; ActionList1: TActionList; actAceptar: TAction; actCancelar: TAction; Bevel4: TBevel; bAceptar: TButton; bCancelar: TButton; Label1: TLabel; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure actCancelarExecute(Sender: TObject); procedure actAceptarExecute(Sender: TObject); public Usuario : IBizUsuario; Controller : IUsuariosController; CambioObligatorio : Boolean; end; implementation {$R *.dfm} uses uDialogUtils; procedure TfEditorCambiarPassword.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caHide; end; procedure TfEditorCambiarPassword.actAceptarExecute(Sender: TObject); var AuxPass : String; AMensaje : String; begin case Controller.Criptografia of ucStandard: AuxPass := EditAtu.Text; ucMD5: AuxPass := MD5Sum(EditAtu.Text); end; if Usuario.PASS <> AuxPass then begin ShowWarningMessage('Cambiar la contraseña', 'La contraseña actual no es correcta.' + #10#13 + 'Asegúrese de que la contraseña actual está bien introduccida.'); EditAtu.SetFocus; Exit; end; if (EditNova.Text <> EditConfirma.Text) then begin ShowWarningMessage('Cambiar la contraseña', 'La contraseña no se confirmó correctamente' + #10#13 + 'Asegúrese de que la contraseña y su confirmación sean iguales.'); EditNova.SetFocus; Exit; end else begin if not Controller.ValidarPassword(EditNova.Text, Usuario.LOGIN, Usuario.USERNAME, AMensaje) then begin ShowWarningMessage('Cambiar la contraseña', AMensaje); EditNova.SetFocus; Exit; end else begin if CambioObligatorio = True then CambioObligatorio := False; ModalResult := mrOK; end; end; end; procedure TfEditorCambiarPassword.actCancelarExecute(Sender: TObject); begin Close; end; procedure TfEditorCambiarPassword.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin if CambioObligatorio then begin CanClose := False; ShowWarningMessage('Cambiar la contraseña', 'El cambio de la contraseña es obligatorio'); end; end; end.