|
@@ -0,0 +1,121 @@
|
|
|
+unit DebugUsers;
|
|
|
+
|
|
|
+interface
|
|
|
+
|
|
|
+uses
|
|
|
+ Classes;
|
|
|
+
|
|
|
+type
|
|
|
+ TUserInfo = class
|
|
|
+ private
|
|
|
+ FUser: string;
|
|
|
+ FPassword: string;
|
|
|
+ public
|
|
|
+ constructor Create(const AUser, APassword: string);
|
|
|
+ end;
|
|
|
+
|
|
|
+ TDebugUsers = class
|
|
|
+ private
|
|
|
+ FUsers: TList;
|
|
|
+ procedure LoadPasswords(const AFileName: string);
|
|
|
+ public
|
|
|
+ constructor Create;
|
|
|
+ destructor Destroy; override;
|
|
|
+
|
|
|
+ function GetPassword(const AUser: string): string;
|
|
|
+ end;
|
|
|
+
|
|
|
+ function GetDebugUsers: TDebugUsers;
|
|
|
+
|
|
|
+implementation
|
|
|
+
|
|
|
+uses
|
|
|
+ UtilMethods, SysUtils, Math;
|
|
|
+
|
|
|
+var
|
|
|
+ _DebugUsers: TDebugUsers;
|
|
|
+
|
|
|
+function GetDebugUsers: TDebugUsers;
|
|
|
+begin
|
|
|
+ if not Assigned(_DebugUsers) then
|
|
|
+ _DebugUsers := TDebugUsers.Create;
|
|
|
+ Result := _DebugUsers;
|
|
|
+end;
|
|
|
+
|
|
|
+{ TDebugUsers }
|
|
|
+
|
|
|
+constructor TDebugUsers.Create;
|
|
|
+var
|
|
|
+ sFileName: string;
|
|
|
+begin
|
|
|
+ FUsers := TList.Create;
|
|
|
+ sFileName := GetAppFilePath + 'UserPassword.txt';
|
|
|
+ LoadPasswords(sFileName);
|
|
|
+end;
|
|
|
+
|
|
|
+destructor TDebugUsers.Destroy;
|
|
|
+begin
|
|
|
+ FUsers.Free;
|
|
|
+ inherited;
|
|
|
+end;
|
|
|
+
|
|
|
+function TDebugUsers.GetPassword(const AUser: string): string;
|
|
|
+var
|
|
|
+ i: Integer;
|
|
|
+ vUser: TUserInfo;
|
|
|
+begin
|
|
|
+ Result := '';
|
|
|
+ for i := 0 to FUsers.Count - 1 do
|
|
|
+ begin
|
|
|
+ vUser := TUserInfo(FUsers.Items[i]);
|
|
|
+ if (vUser.FUser = AUser) then
|
|
|
+ begin
|
|
|
+ Result := vUser.FPassword;
|
|
|
+ Break;
|
|
|
+ end;
|
|
|
+ end;
|
|
|
+end;
|
|
|
+
|
|
|
+procedure TDebugUsers.LoadPasswords(const AFileName: string);
|
|
|
+var
|
|
|
+ sgs: TStrings;
|
|
|
+ i, iPos: Integer;
|
|
|
+ sValue, sUser, sPassword: string;
|
|
|
+ vUser: TUserInfo;
|
|
|
+begin
|
|
|
+ if FileExists(AFileName) then
|
|
|
+ begin
|
|
|
+ sgs := TStringList.Create;
|
|
|
+ try
|
|
|
+ sgs.LoadFromFile(AFileName);
|
|
|
+ for i := 0 to sgs.Count - 1 do
|
|
|
+ begin
|
|
|
+ sValue := sgs.Strings[i];
|
|
|
+ iPos := Pos(';', sValue);
|
|
|
+ if iPos > 0 then
|
|
|
+ begin
|
|
|
+ sUser := Copy(sValue, 1, iPos - 1);
|
|
|
+ sPassword := Copy(sValue, iPos + 1, Length(sValue)-iPos);
|
|
|
+ vUser := TUserInfo.Create(sUser, sPassword);
|
|
|
+ FUsers.Add(vUser);
|
|
|
+ end;
|
|
|
+ end;
|
|
|
+ finally
|
|
|
+ sgs.Free;
|
|
|
+ end;
|
|
|
+ end;
|
|
|
+end;
|
|
|
+
|
|
|
+{ TPassword }
|
|
|
+
|
|
|
+constructor TUserInfo.Create(const AUser, APassword: string);
|
|
|
+begin
|
|
|
+ FUser := AUser;
|
|
|
+ FPassword := APassword;
|
|
|
+end;
|
|
|
+
|
|
|
+initialization
|
|
|
+
|
|
|
+finalization
|
|
|
+ _DebugUsers.Free;
|
|
|
+end.
|