uUsuariosController: funciones para dar un usuario o todos los usuarios.

git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@234 0c75b7a4-871f-7646-8a2f-f78d34cc349f
This commit is contained in:
David Arranz 2008-01-15 17:07:23 +00:00
parent cef8770e88
commit 9b53c49069

View File

@ -48,7 +48,11 @@ type
function HayUsuarioConPerfil(const AIDPerfil : integer): Boolean;
function BuscarUsuario(const AIDUser: Integer): IBizUsuario;
function BuscarTodosUsuarios: IBizUsuario;
function DarListaPerfilesUsuario: TStringList;
function DarListaUsuarios: TStringList;
function ValidarPassword(const APassword : string; const ALogin : String;
const ANombre: String; out AMsg : String): boolean;
@ -78,6 +82,7 @@ type
TUsuariosController = class(TControllerBase, IUsuariosController)
private
function Eliminar(const AIDUser: integer): Boolean;
procedure FiltrarEmpresa(AUsuario: IBizUsuario);
protected
FDataModule : IDataModuleUsuarios;
FUserControl: TUserControl;
@ -138,7 +143,12 @@ type
function GuardarPerfil(APerfil : IBizPerfilUsuario): Boolean;
function GuardarUsuario(AUser : IBizUsuario): Boolean;
function BuscarUsuario(const AIDUser: Integer): IBizUsuario;
function BuscarTodosUsuarios: IBizUsuario;
function DarListaPerfilesUsuario: TStringList;
function DarListaUsuarios: TStringList;
function HayUsuarioConPerfil(const AIDPerfil : integer): Boolean;
function ValidarPassword(const APassword : string; const ALogin : String;
const ANombre: String; out AMsg : String): boolean;
@ -263,6 +273,18 @@ begin
FDataModule := TDataModuleUsuarios.Create(Nil);
end;
function TUsuariosController.BuscarTodosUsuarios: IBizUsuario;
begin
Result := FDataModule.GetUsuarios;
FiltrarEmpresa(Result);
end;
function TUsuariosController.BuscarUsuario(const AIDUser: Integer): IBizUsuario;
begin
Result := FDataModule.GetUsuario(AIDUser);
FiltrarEmpresa(Result);
end;
function TUsuariosController.CambiarPassword(const AIDUser: Integer;
const ANewPassword: String): Boolean;
begin
@ -301,12 +323,12 @@ end;
function TUsuariosController.ComprobarUsuario(const User,
Password: String): Boolean;
begin
Result := FUserControl.VerificaLogin(User, Password);
if not Result then
begin
ComprobarUsuarioInicial;
Result := ComprobarUsuario(User, Password);
end;
Result := FUserControl.VerificaLogin(User, Password);
if not Result then
begin
ComprobarUsuarioInicial;
Result := ComprobarUsuario(User, Password);
end;
end;
procedure TUsuariosController.ComprobarUsuarioInicial;
@ -321,7 +343,6 @@ begin
AsignarDataModule;
FUserControl := TUserControl.Create(nil);
InicializarUserControl;
// ComprobarUsuarioInicial; <- Desactivado porque casca cuando el servidor no está lanzado. Hay que arreglarlo.
end;
function TUsuariosController.CreateEditor(const AName: String; const IID: TGUID; out Intf): Boolean;
@ -345,8 +366,6 @@ begin
while not APerfilesUsuario.DataTable.EOF do
begin
Add(Format('%s=%d', [APerfilesUsuario.USERNAME, APerfilesUsuario.ID]));
{i := Add(APerfilesUsuario.USERNAME);
ValueFromIndex[i] := IntToStr(APerfilesUsuario.ID);}
APerfilesUsuario.DataTable.Next;
end;
end;
@ -355,6 +374,30 @@ begin
end;
end;
function TUsuariosController.DarListaUsuarios: TStringList;
var
AUsuarios: IBizUsuario;
i : integer;
begin
AUsuarios := FDataModule.GetUsuarios;
AUsuarios.DataTable.Active := True;
Result := TStringList.Create;
try
with Result do
begin
AUsuarios.DataTable.First;
while not AUsuarios.DataTable.EOF do
begin
Add(Format('%s=%d', [AUsuarios.USERNAME, AUsuarios.ID]));
AUsuarios.DataTable.Next;
end;
end;
finally
AUsuarios := NIL;
end;
end;
destructor TUsuariosController.Destroy;
begin
FreeAndNIL(FUserControl);
@ -831,4 +874,30 @@ begin
end;
end;
procedure TUsuariosController.FiltrarEmpresa(AUsuario: IBizUsuario);
var
Condicion: TDAWhereExpression;
begin
// AQUI HAY QUE TENER EN CUENTA QUE UN USUARIO PUEDE QUE NO TENGA ACCESO
// EN UNA DETERMINADA EMPRESA
{ if AUsuario.DataTable.Active then
AUsuario.DataTable.Active := False;
// Filtrar los contactos actuales por empresa
with AUsuario.DataTable.DynamicWhere do
begin
Condicion := NewBinaryExpression(NewField('', fld_U
ContactosID_EMPRESA), NewConstant(AppFactuGES.EmpresaActiva.ID, datInteger), dboEqual);
if IsEmpty then
Expression := Condicion
else
Expression := NewBinaryExpression(Expression, Condicion, dboAnd);
end;}
end;
end.