Tecsitel_FactuGES2/Source/Servidor/uUsersManager.pas
2007-09-04 17:25:54 +00:00

96 lines
2.1 KiB
ObjectPascal

unit uUsersManager;
interface
uses
uROSessions, FactuGES_Intf, uSesionesUtils, uDataModuleServer;
type
TUserInfo = class(TObject)
private
FSession : TROSession;
FLoginInfo : TRdxLoginInfo;
function GetLoginInfo: TRdxLoginInfo;
procedure SetLoginInfo(const Value: TRdxLoginInfo);
function GetEsAdministrador: Boolean;
function GetEmpresas: String;
public
constructor Create(ASession : TROSession); overload;
constructor Create(ASessionID : TGUID); overload;
destructor Destroy; override;
property LoginInfo : TRdxLoginInfo read GetLoginInfo write SetLoginInfo;
property EsAdministrador : Boolean read GetEsAdministrador;
property Empresas : String read GetEmpresas;
end;
implementation
uses Classes, srvLogin_Impl, SysUtils;
{ TUserInfo }
constructor TUserInfo.Create(ASession: TROSession);
begin
FSession := ASession;
FLoginInfo := TRdxLoginInfo(SesionesHelper.GetSessionObject(FSession, SESION_LOGININFO));
end;
constructor TUserInfo.Create(ASessionID: TGUID);
begin
Create(dmServer.SessionManager.FindSession(ASessionID));
end;
destructor TUserInfo.Destroy;
begin
inherited;
end;
function TUserInfo.GetEmpresas: String;
var
I: Integer;
AList : TStringList;
begin
Result := '';
AList := TStringList.Create;
try
AList.Sorted := True;
AList.Delimiter := ',';
AList.Duplicates := dupIgnore;
for I := 0 to FLoginInfo.Empresas.Count - 1 do
AList.Add(IntToStr(FLoginInfo.Empresas.Items[I]));
Result := AList.DelimitedText;
finally
AList.Free;
end;
end;
function TUserInfo.GetEsAdministrador: Boolean;
var
I: Integer;
begin
Result := False;
for I := 0 to FLoginInfo.Perfiles.Count - 1 do
if FLoginInfo.Perfiles.Items[I] = PERFIL_ADMINISTRADORES then
begin
Result := True;
Break;
end;
end;
function TUserInfo.GetLoginInfo: TRdxLoginInfo;
begin
Result := FLoginInfo;
end;
procedure TUserInfo.SetLoginInfo(const Value: TRdxLoginInfo);
begin
FLoginInfo := Value;
SesionesHelper.SaveSessionObject(FSession, SESION_LOGININFO, FLoginInfo);
end;
end.