📄 clusermgr.pas
字号:
{
Clever Internet Suite Version 6.2
Copyright (C) 1999 - 2006 Clever Components
www.CleverComponents.com
}
unit clUserMgr;
interface
{$I clVer.inc}
uses
Classes;
type
TclUserAccountItem = class(TCollectionItem)
private
FPassword: string;
FUserName: string;
FDisplayName: string;
public
function Authenticate(const APassword: string): Boolean;
procedure Assign(Source: TPersistent); override;
published
property UserName: string read FUserName write FUserName;
property Password: string read FPassword write FPassword;
property DisplayName: string read FDisplayName write FDisplayName;
end;
TclUserAccountList = class(TOwnedCollection)
private
FCaseInsensitive: Boolean;
function GetItem(Index: Integer): TclUserAccountItem;
procedure SetItem(Index: Integer; const Value: TclUserAccountItem);
public
procedure Assign(Source: TPersistent); override;
function Add: TclUserAccountItem;
function AccountByUserName(const AUserName: string): TclUserAccountItem;
property Items[Index: Integer]: TclUserAccountItem read GetItem write SetItem; default;
property CaseInsensitive: Boolean read FCaseInsensitive write FCaseInsensitive;
end;
implementation
uses
SysUtils;
{ TclUserAccountList }
function TclUserAccountList.AccountByUserName(const AUserName: string): TclUserAccountItem;
var
i: Integer;
begin
for i := 0 to Count - 1 do
begin
Result := Items[i];
if CaseInsensitive then
begin
if SameText(Result.UserName, AUserName) then Exit;
end else
begin
if (Result.UserName = AUserName) then Exit;
end;
end;
Result := nil;
end;
function TclUserAccountList.Add: TclUserAccountItem;
begin
Result := TclUserAccountItem(inherited Add());
end;
procedure TclUserAccountList.Assign(Source: TPersistent);
begin
inherited Assign(Source);
if (Source is TclUserAccountList) then
begin
CaseInsensitive := (Source as TclUserAccountList).CaseInsensitive;
end;
end;
function TclUserAccountList.GetItem(Index: Integer): TclUserAccountItem;
begin
Result := TclUserAccountItem(inherited GetItem(Index));
end;
procedure TclUserAccountList.SetItem(Index: Integer; const Value: TclUserAccountItem);
begin
inherited SetItem(Index, Value);
end;
{ TclUserAccountItem }
procedure TclUserAccountItem.Assign(Source: TPersistent);
var
account: TclUserAccountItem;
begin
if (Source is TclUserAccountItem) then
begin
account := (Source as TclUserAccountItem);
FPassword := account.Password;
FUserName := account.UserName;
FDisplayName := account.DisplayName;
end else
begin
inherited Assign(Source);
end;
end;
function TclUserAccountItem.Authenticate(const APassword: string): Boolean;
begin
if (Collection as TclUserAccountList).CaseInsensitive then
begin
Result := SameText(Password, APassword);
end else
begin
Result := (Password = APassword);
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -