Tecsitel_FactuGES2/Source/ApplicationBase/Usuarios/Data/uDataModuleUsuarios.pas

536 lines
22 KiB
ObjectPascal

unit uDataModuleUsuarios;
interface
uses
SysUtils, Classes, DB, DBClient, uDADataTable,
FactuGES_Intf, uIntegerListUtils, uBizEmpresas,
UCBase, UCDataConnector, uUCROConn, uDARemoteDataAdapter,
uDARemoteCommand, uROClient, uRORemoteService, uDADataStreamer,
uDABin2DataStreamer, uDAScriptingProvider, uIDataModuleUsuarios, UCSettings;
const
PERFIL_ADMINISTRADORES = 'Administradores';
type
TDataModuleUsuarios = class(TDataModule, IDataModuleUsuarios)
ROLoginService: TRORemoteService;
srvUsuarios: TRORemoteService;
Bin2DataStreamer: TDABin2DataStreamer;
UCSettingsSpanish: TUCSettings;
procedure DAClientDataModuleCreate(Sender: TObject);
procedure DAClientDataModuleDestroy(Sender: TObject);
private
FDataConnector : TUCROConn;
FUsuario : String;
FPassword : String; // Lo guardo para poder hacer una reconexión
FLoginInfo: TRdxLoginInfo;
// function GetEsAdministrador: Boolean;
//function GetEmpresas: TIntegerList;
{procedure SetEmpresaActual(const Value: IBizEmpresa);
function GetIDEmpresaActual: Integer;
procedure SetIDEmpresaActual(const Value: Integer);}
function GetDataConnector : TUCDataConnector;
function GetUCSettings : TUCSettings;
procedure InicializarCamposUserControl(AUserControl: TUserControl);
procedure InicializarSettingsUserControl(AUserControl: TUserControl);
public
procedure InicializarUserControl (AUserControl : TUserControl);
{ function Login: Boolean; overload;
function Login(Usuario: String; Password: String): Boolean; overload;
procedure Logout;
procedure CambiarPassword; overload;}
// property EsAdministrador : Boolean read GetEsAdministrador;
// property IDEmpresaActual : Integer read GetIDEmpresaActual write SetIDEmpresaActual;
// property EmpresaActual : IBizEmpresa read FEmpresaActual write SetEmpresaActual;
// property Empresas : TIntegerList read GetEmpresas;
// property LoginInfo: TRdxLoginInfo read FLoginInfo;
property DataConnector : TUCDataConnector read GetDataConnector;
property UCSettings: TUCSettings read GetUCSettings;
end;
implementation
{$R *.DFM}
uses
Forms, Controls, uDataTableUtils, uDataModuleConexion,
Dialogs, Windows, uEmpresasController,
schUsuariosClient_Intf;
{ TDAClientDataModule1 }
procedure TDataModuleUsuarios.DAClientDataModuleCreate(Sender: TObject);
begin
ROLoginService.Channel := dmConexion.Channel;
ROLoginService.Message := dmConexion.Message;
FDataConnector := TUCROConn.Create(nil);
FDataConnector.RemoteService := srvUsuarios;
FUsuario := '';
FPassword := '';
FLoginInfo := NIL;
end;
{function TDataModuleUsuarios.Login: Boolean;
begin
// Intento hacer login si el usuario ya lo había hecho antes
if (Length(FUsuario) > 0) then
if Login(FUsuario, FPassword) then
begin
Result := True;
Exit;
end;
// Si no funcionar el login anterior o es la primera vez,
// saco la pantalla de login
with TfLoginForm.Create(NIL) do
try
if Assigned(FLoginInfo) then
edtUser.Text := FLoginInfo.Usuario;
Result := (ShowModal = mrOK)
finally
Free;
end;
end;}
{function TDataModuleUsuarios.Login(Usuario: String; Password: String): Boolean;
begin
// Libero la información del login anterior (sesión, etc)
if Assigned(FLoginInfo) then
FreeANDNil(FLoginInfo);
Result := (ROLoginService as IsrvLogin).Login(Usuario, Password, FLoginInfo);
if Result then
begin
// Lo guardo para poder reconectarme
FUsuario := Usuario;
FPassword := Password;
end;
end;}
{procedure TDataModuleUsuarios.Logout;
begin
(ROLoginService as IsrvLogin).Logout;
if Assigned(FLoginInfo) then
FreeANDNil(FLoginInfo);
FUsuario := '';
FPassword := '';
end;}
{procedure TDataModuleUsuarios.SetEmpresaActual(const Value: IBizEmpresa);
begin
FEmpresaActual := Value;
FEmpresaActual.DataTable.Active := True;
end;}
{procedure TDataModuleUsuarios.SetIDEmpresaActual(const Value: Integer);
var
AEmpresasController : IEmpresasController;
AEmpresa : IBizEmpresa;
begin
AEmpresasController := TEmpresasController.Create;
AEmpresa := AEmpresasController.Buscar(Value);
AEmpresa.DataTable.Active := True;
if not AEmpresa.IsEmpty then
begin
FEmpresaActual := AEmpresa;
FEmpresaActual.DataTable.Active := True;
end
else
FEmpresaActual := NIL;
end;}
procedure TDataModuleUsuarios.DAClientDataModuleDestroy(Sender: TObject);
begin
if Assigned(FDataConnector) then
FreeANDNIL(FDataConnector);
if Assigned(FLoginInfo) then
FreeANDNIL(FLoginInfo);
end;
function TDataModuleUsuarios.GetDataConnector: TUCDataConnector;
begin
Result := FDataConnector;
end;
{function TDataModuleUsuarios.GetEmpresas: TIntegerList;
var
i : integer;
begin
Result := TIntegerList.Create;
if not Assigned(FLoginInfo) then
raise Exception.Create('Usuario no validado en el sistema (login)');
for i := 0 to FLoginInfo.Empresas.Count - 1 do
Result.Add(FLoginInfo.Empresas.Items[i]);
end;
function TDataModuleUsuarios.GetEsAdministrador: Boolean;
var
I: Integer;
begin
Result := False;
if not Assigned(FLoginInfo) then
raise Exception.Create('Usuario no validado en el sistema (login)');
for I := 0 to FLoginInfo.Perfiles.Count - 1 do
if FLoginInfo.Perfiles.Items[I] = PERFIL_ADMINISTRADORES then
begin
Result := True;
Break;
end;
end;
function TDataModuleUsuarios.GetIDEmpresaActual: Integer;
begin
if not Assigned(FEmpresaActual) then
Result := ID_NULO
else
Result := FEmpresaActual.ID;
end; }
function TDataModuleUsuarios.GetUCSettings: TUCSettings;
begin
Result := UCSettingsSpanish;
end;
procedure TDataModuleUsuarios.InicializarCamposUserControl(
AUserControl: TUserControl);
begin
if not Assigned(AUserControl) then
raise Exception.Create('UserControl no asignado (InicializarUserControl)');
with AUserControl do
begin
DataConnector := FDataConnector;
with TableUsers do
begin
TableName := nme_USUARIOS;
FieldUserID := fld_USUARIOSID;
FieldUserName := fld_USUARIOSUSERNAME;
FieldLogin := fld_USUARIOSLOGIN;
FieldPassword := fld_USUARIOSPASS;
FieldEmail := fld_USUARIOSEMAIL;
FieldPrivileged := fld_USUARIOSPRIVILEGED;
FieldTypeRec := fld_USUARIOSTIPO;
FieldProfile := fld_USUARIOSID_PERFIL;
FieldUserExpired := fld_USUARIOSBLOQUEADO;
FieldDateExpired := fld_USUARIOSPASSEXPIRED;
FieldUserDaysSun := fld_USUARIOSUSERDAYSSUN;
FieldKey := fld_USUARIOSCHECKSUM;
end;
with TableRights do
begin
TableName := nme_PERMISOS;
FieldUserID := fld_PERMISOSID_USUARIO;
FieldModule := fld_PERMISOSMODULO;
FieldComponentName := fld_PERMISOSNOMBRECOMP;
FieldFormName := fld_PERMISOSEXNOMBREFORM;
FieldKey := fld_PERMISOSCHECKSUM;
end;
with TableUsersLogged do
begin
TableName := nme_USUARIOS_LOGON;
FieldLogonID := fld_USUARIOS_LOGONLOGONID;
FieldUserID := fld_USUARIOS_LOGONID_USUARIO;
FieldApplicationID := fld_USUARIOS_LOGONAPLICACION;
FieldMachineName := fld_USUARIOS_LOGONEQUIPO;
FieldData := fld_USUARIOS_LOGONDATA;
end;
with TableHistory do
begin
TableName := nme_USUARIOS_EVENTOS;
FieldApplicationID := fld_USUARIOS_EVENTOSAPLICACION;
FieldUserID := fld_USUARIOS_EVENTOSID_USUARIO;
FieldEventDate := fld_USUARIOS_EVENTOSFECHA;
FieldEventTime := fld_USUARIOS_EVENTOSHORA;
FieldForm := fld_USUARIOS_EVENTOSFORM;
FieldCaptionForm := fld_USUARIOS_EVENTOSTITULO_FORM;
FieldEvent := fld_USUARIOS_EVENTOSEVENTO;
FieldObs := fld_USUARIOS_EVENTOSNOTAS;
FieldTableName := fld_USUARIOS_EVENTOSTNAME;
end;
end;
end;
procedure TDataModuleUsuarios.InicializarSettingsUserControl(
AUserControl: TUserControl);
var
SourceSettings : TUCSettings;
begin
SourceSettings := UCSettingsSpanish;
with AUserControl do
begin
with UserSettings.CommonMessages do
begin
BlankPassword := SourceSettings.CommonMessages.BlankPassword;
PasswordChanged := SourceSettings.CommonMessages.PasswordChanged;
InitialMessage.Text := SourceSettings.CommonMessages.InitialMessage.Text;
MaxLoginAttemptsError := SourceSettings.CommonMessages.MaxLoginAttemptsError;
InvalidLogin := SourceSettings.CommonMessages.InvalidLogin;
AutoLogonError := SourceSettings.CommonMessages.AutoLogonError;
UsuarioExiste := SourceSettings.CommonMessages.UsuarioExiste; // Luiz Benevenuto 20/04/06
PasswordExpired := SourceSettings.CommonMessages.PasswordExpired; // vicente barros leonel
ForcaTrocaSenha := SourceSettings.CommonMessages.ForcaTrocaSenha;
end;
with UserSettings.Login do
begin
BtCancel := SourceSettings.Login.BtCancel;
BtOK := SourceSettings.Login.BtOK;
LabelPassword := SourceSettings.Login.LabelPassword;
LabelUser := SourceSettings.Login.LabelUser;
WindowCaption := SourceSettings.Login.WindowCaption;
LabelTentativa := SourceSettings.Login.LabelTentativa;
LabelTentativas := SourceSettings.Login.LabelTentativas;
if Assigned(SourceSettings.Login.LeftImage.Bitmap) then
LeftImage.Bitmap := SourceSettings.Login.LeftImage.Bitmap
else
LeftImage.Bitmap := nil;
if Assigned(SourceSettings.Login.TopImage.Bitmap) then
TopImage.Bitmap := SourceSettings.Login.TopImage.Bitmap
else
TopImage.Bitmap := nil;
if Assigned(SourceSettings.Login.BottomImage.Bitmap) then
BottomImage.Bitmap := SourceSettings.Login.BottomImage.Bitmap
else
BottomImage.Bitmap := nil;
end;
with UserSettings.UsersForm do
begin
WindowCaption := SourceSettings.UsersForm.WindowCaption;
LabelDescription := SourceSettings.UsersForm.LabelDescription;
ColName := SourceSettings.UsersForm.ColName;
ColLogin := SourceSettings.UsersForm.ColLogin;
ColEmail := SourceSettings.UsersForm.ColEmail;
BtAdd := SourceSettings.UsersForm.BtAdd;
BtChange := SourceSettings.UsersForm.BtChange;
BtDelete := SourceSettings.UsersForm.BtDelete;
BtRights := SourceSettings.UsersForm.BtRights;
BtPassword := SourceSettings.UsersForm.BtPassword;
BtClose := SourceSettings.UsersForm.BtClose;
PromptDelete := SourceSettings.UsersForm.PromptDelete;
PromptDelete_WindowCaption := SourceSettings.UsersForm.PromptDelete_WindowCaption; //added by fduenas
end;
with UserSettings.UsersProfile do
begin
WindowCaption := SourceSettings.UsersProfile.WindowCaption;
LabelDescription := SourceSettings.UsersProfile.LabelDescription;
ColProfile := SourceSettings.UsersProfile.ColProfile;
BtAdd := SourceSettings.UsersProfile.BtAdd;
BtChange := SourceSettings.UsersProfile.BtChange;
BtDelete := SourceSettings.UsersProfile.BtDelete;
BtRights := SourceSettings.UsersProfile.BtRights; //added by fduenas
BtClose := SourceSettings.UsersProfile.BtClose;
PromptDelete := SourceSettings.UsersProfile.PromptDelete;
PromptDelete_WindowCaption := SourceSettings.UsersProfile.PromptDelete_WindowCaption; //added by fduenas
end;
with UserSettings.AddChangeUser do
begin
WindowCaption := SourceSettings.AddChangeUser.WindowCaption;
LabelAdd := SourceSettings.AddChangeUser.LabelAdd;
LabelChange := SourceSettings.AddChangeUser.LabelChange;
LabelName := SourceSettings.AddChangeUser.LabelName;
LabelLogin := SourceSettings.AddChangeUser.LabelLogin;
LabelEmail := SourceSettings.AddChangeUser.LabelEmail;
CheckPrivileged := SourceSettings.AddChangeUser.CheckPrivileged;
BtSave := SourceSettings.AddChangeUser.BtSave;
BtCancel := SourceSettings.AddChangeUser.BtCancel;
CheckExpira := SourceSettings.AddChangeUser.CheckExpira;
Day := SourceSettings.AddChangeUser.Day;
ExpiredIn := SourceSettings.AddChangeUser.ExpiredIn;
end;
with UserSettings.AddChangeProfile do
begin
WindowCaption := SourceSettings.AddChangeProfile.WindowCaption;
LabelAdd := SourceSettings.AddChangeProfile.LabelAdd;
LabelChange := SourceSettings.AddChangeProfile.LabelChange;
LabelName := SourceSettings.AddChangeProfile.LabelName;
BtSave := SourceSettings.AddChangeProfile.BtSave;
BtCancel := SourceSettings.AddChangeProfile.BtCancel;
end;
with UserSettings.Rights do
begin
WindowCaption := SourceSettings.Rights.WindowCaption;
LabelUser := SourceSettings.Rights.LabelUser;
LabelProfile := SourceSettings.Rights.LabelProfile;
PageMenu := SourceSettings.Rights.PageMenu;
PageActions := SourceSettings.Rights.PageActions;
PageControls := SourceSettings.Rights.PageControls;
BtUnlock := SourceSettings.Rights.BtUnlock;
BtLock := SourceSettings.Rights.BtLock;
BtSave := SourceSettings.Rights.BtSave;
BtCancel := SourceSettings.Rights.BtCancel;
end;
with UserSettings.ChangePassword do
begin
WindowCaption := SourceSettings.ChangePassword.WindowCaption;
LabelDescription := SourceSettings.ChangePassword.LabelDescription;
LabelCurrentPassword := SourceSettings.ChangePassword.LabelCurrentPassword;
LabelNewPassword := SourceSettings.ChangePassword.LabelNewPassword;
LabelConfirm := SourceSettings.ChangePassword.LabelConfirm;
BtSave := SourceSettings.ChangePassword.BtSave;
BtCancel := SourceSettings.ChangePassword.BtCancel;
end;
with UserSettings.CommonMessages.ChangePasswordError do
begin
InvalidCurrentPassword := SourceSettings.CommonMessages.ChangePasswordError.InvalidCurrentPassword;
NewPasswordError := SourceSettings.CommonMessages.ChangePasswordError.NewPasswordError;
NewEqualCurrent := SourceSettings.CommonMessages.ChangePasswordError.NewEqualCurrent;
PasswordRequired := SourceSettings.CommonMessages.ChangePasswordError.PasswordRequired;
MinPasswordLength := SourceSettings.CommonMessages.ChangePasswordError.MinPasswordLength;
InvalidNewPassword := SourceSettings.CommonMessages.ChangePasswordError.InvalidNewPassword;
end;
with UserSettings.ResetPassword do
begin
WindowCaption := SourceSettings.ResetPassword.WindowCaption;
LabelPassword := SourceSettings.ResetPassword.LabelPassword;
end;
with UserSettings.Log do
begin
WindowCaption := SourceSettings.Log.WindowCaption;
LabelDescription := SourceSettings.Log.LabelDescription;
LabelUser := SourceSettings.Log.LabelUser;
LabelDate := SourceSettings.Log.LabelDate;
LabelLevel := SourceSettings.Log.LabelLevel;
ColLevel := SourceSettings.Log.ColLevel;
ColMessage := SourceSettings.Log.ColMessage;
ColUser := SourceSettings.Log.ColUser;
ColDate := SourceSettings.Log.ColDate;
BtFilter := SourceSettings.Log.BtFilter;
BtDelete := SourceSettings.Log.BtDelete;
BtClose := SourceSettings.Log.BtClose;
PromptDelete := SourceSettings.Log.PromptDelete;
PromptDelete_WindowCaption := SourceSettings.Log.PromptDelete_WindowCaption; //added by fduenas
OptionUserAll := SourceSettings.Log.OptionUserAll; //added by fduenas
OptionLevelLow := SourceSettings.Log.OptionLevelLow; //added by fduenas
OptionLevelNormal := SourceSettings.Log.OptionLevelNormal; //added by fduenas
OptionLevelHigh := SourceSettings.Log.OptionLevelHigh; //added by fduenas
OptionLevelCritic := SourceSettings.Log.OptionLevelCritic; //added by fduenas
DeletePerformed := SourceSettings.Log.DeletePerformed; //added by fduenas
end;
with UserSettings.AppMessages do
begin
MsgsForm_BtNew := SourceSettings.AppMessages.MsgsForm_BtNew;
MsgsForm_BtReplay := SourceSettings.AppMessages.MsgsForm_BtReplay;
MsgsForm_BtForward := SourceSettings.AppMessages.MsgsForm_BtForward;
MsgsForm_BtDelete := SourceSettings.AppMessages.MsgsForm_BtDelete;
MsgsForm_BtClose := SourceSettings.AppMessages.MsgsForm_BtClose; //added by fduenas
MsgsForm_WindowCaption := SourceSettings.AppMessages.MsgsForm_WindowCaption;
MsgsForm_ColFrom := SourceSettings.AppMessages.MsgsForm_ColFrom;
MsgsForm_ColSubject := SourceSettings.AppMessages.MsgsForm_ColSubject;
MsgsForm_ColDate := SourceSettings.AppMessages.MsgsForm_ColDate;
MsgsForm_PromptDelete := SourceSettings.AppMessages.MsgsForm_PromptDelete;
MsgsForm_PromptDelete_WindowCaption := SourceSettings.AppMessages.MsgsForm_PromptDelete_WindowCaption; //added by fduenas
MsgsForm_NoMessagesSelected := SourceSettings.AppMessages.MsgsForm_NoMessagesSelected; //added by fduenas
MsgsForm_NoMessagesSelected_WindowCaption := SourceSettings.AppMessages.MsgsForm_NoMessagesSelected_WindowCaption; //added by fduenas
MsgRec_BtClose := SourceSettings.AppMessages.MsgRec_BtClose;
MsgRec_WindowCaption := SourceSettings.AppMessages.MsgRec_WindowCaption;
MsgRec_Title := SourceSettings.AppMessages.MsgRec_Title;
MsgRec_LabelFrom := SourceSettings.AppMessages.MsgRec_LabelFrom;
MsgRec_LabelDate := SourceSettings.AppMessages.MsgRec_LabelDate;
MsgRec_LabelSubject := SourceSettings.AppMessages.MsgRec_LabelSubject;
MsgRec_LabelMessage := SourceSettings.AppMessages.MsgRec_LabelMessage;
MsgSend_BtSend := SourceSettings.AppMessages.MsgSend_BtSend;
MsgSend_BtCancel := SourceSettings.AppMessages.MsgSend_BtCancel;
MsgSend_WindowCaption := SourceSettings.AppMessages.MsgSend_WindowCaption;
MsgSend_Title := SourceSettings.AppMessages.MsgSend_Title;
MsgSend_GroupTo := SourceSettings.AppMessages.MsgSend_GroupTo;
MsgSend_RadioUser := SourceSettings.AppMessages.MsgSend_RadioUser;
MsgSend_RadioAll := SourceSettings.AppMessages.MsgSend_RadioAll;
MsgSend_GroupMessage := SourceSettings.AppMessages.MsgSend_GroupMessage;
MsgSend_LabelSubject := SourceSettings.AppMessages.MsgSend_LabelSubject; //added by fduenas
MsgSend_LabelMessageText := SourceSettings.AppMessages.MsgSend_LabelMessageText; //added by fduenas
end;
With UserSettings.History do
Begin
Evento_edit := SourceSettings.History.Evento_edit;
Evento_NewRecord := SourceSettings.History.Evento_NewRecord;
Evento_Insert := SourceSettings.History.Evento_Insert;
Evento_delete := SourceSettings.History.Evento_Delete;
LabelTabela := SourceSettings.History.LabelTabela;
Msg_LogEmptyHistory := SourceSettings.History.Msg_LogEmptyHistory;
Msg_MensConfirma := SourceSettings.History.Msg_MensConfirma;
LabelDescricao := SourceSettings.History.LabelDescricao;
Hist_BtnExcluir := SourceSettings.History.Hist_BtnExcluir;
Hist_BtnFiltro := SourceSettings.History.Hist_BtnFiltro;
LabelForm := SourceSettings.History.LabelForm;
Hist_BtnFechar := SourceSettings.History.Hist_BtnFechar;
LabelDataEvento := SourceSettings.History.LabelDataEvento;
LabelEvento := SourceSettings.History.LabelEvento;
Msg_NewRecord := SourceSettings.History.Msg_NewRecord;
Hist_All := SourceSettings.History.Hist_All;
Msg_LimpHistorico := SourceSettings.History.Msg_LimpHistorico;
LabelHoraEvento := SourceSettings.History.LabelHoraEvento;
LabelUser := SourceSettings.History.LabelUser;
Hist_MsgExceptPropr := SourceSettings.History.Hist_MsgExceptPropr;
End;
with UserSettings.TypeFieldsDB do
Begin
Type_VarChar := SourceSettings.TypeFieldsDB.Type_VarChar;
Type_Char := SourceSettings.TypeFieldsDB.Type_Char;
Type_Int := SourceSettings.TypeFieldsDB.Type_Int;
Type_MemoField := SourceSettings.TypeFieldsDB.Type_MemoField;
end;
UserSettings.WindowsPosition := SourceSettings.WindowsPosition;
end;
end;
procedure TDataModuleUsuarios.InicializarUserControl(
AUserControl: TUserControl);
begin
if Assigned(AUserControl) then
begin
InicializarCamposUserControl(AUserControl);
InicializarSettingsUserControl(AUserControl);
end;
end;
{procedure TDataModuleUsuarios.CambiarPassword;
begin
with TfCambiarPassword.Create(NIL) do
try
if ShowModal = mrOk then
if CambiarPassword(edtPassword.Text) then
Application.MessageBox('La contraseña ha sido cambiada correctamente.', 'Información', MB_OK);
finally
Free;
end;
end;}
end.