|
@@ -13,42 +13,42 @@ Type
|
|
|
|
|
|
{ User functions }
|
|
{ User functions }
|
|
|
|
|
|
-Function getpwnam(Const UserName: String) : PPasswordRecord;
|
|
|
|
-Procedure GetUserData(Const UserName : String; Var Data : TPasswordRecord); overload;
|
|
|
|
|
|
+Function getpwnam(Const UserName: AnsiString) : PPasswordRecord;
|
|
|
|
+Procedure GetUserData(Const UserName : AnsiString; Var Data : TPasswordRecord); overload;
|
|
Procedure GetUserData(Uid : TUID; Var Data : TPasswordRecord); overload;
|
|
Procedure GetUserData(Uid : TUID; Var Data : TPasswordRecord); overload;
|
|
-function GetUserName(UID : TUID) : String;
|
|
|
|
-function GetUserId(Const UserName : String) : TUID;
|
|
|
|
-function GetUserGid(Const UserName : String) : TGID;
|
|
|
|
-function GetUserDir(Const UserName : String): String;
|
|
|
|
-function GetUserDescription(Const UserName : String): String;
|
|
|
|
|
|
+function GetUserName(UID : TUID) : AnsiString;
|
|
|
|
+function GetUserId(Const UserName : AnsiString) : TUID;
|
|
|
|
+function GetUserGid(Const UserName : AnsiString) : TGID;
|
|
|
|
+function GetUserDir(Const UserName : AnsiString): AnsiString;
|
|
|
|
+function GetUserDescription(Const UserName : AnsiString): AnsiString;
|
|
Procedure GetUserList(List : Tstrings);overload;
|
|
Procedure GetUserList(List : Tstrings);overload;
|
|
Procedure GetUserList(List : TStrings; WithIDs : Boolean);overload;
|
|
Procedure GetUserList(List : TStrings; WithIDs : Boolean);overload;
|
|
|
|
|
|
{ Group functions }
|
|
{ Group functions }
|
|
|
|
|
|
-Function getgrnam(Const GroupName: String) : PGroup;
|
|
|
|
-Procedure GetGroupData(Const GroupName : String; Var Data : TGroup); overload;
|
|
|
|
|
|
+Function getgrnam(Const GroupName: AnsiString) : PGroup;
|
|
|
|
+Procedure GetGroupData(Const GroupName : AnsiString; Var Data : TGroup); overload;
|
|
Procedure GetGroupData(Gid : TGID; Var Data : TGroup); overload;
|
|
Procedure GetGroupData(Gid : TGID; Var Data : TGroup); overload;
|
|
-function GetGroupName(GID : TGID) : String;
|
|
|
|
-function GetGroupId(Const GroupName : String) : TGID;
|
|
|
|
|
|
+function GetGroupName(GID : TGID) : AnsiString;
|
|
|
|
+function GetGroupId(Const GroupName : AnsiString) : TGID;
|
|
Procedure GetGroupList(List : Tstrings);overload;
|
|
Procedure GetGroupList(List : Tstrings);overload;
|
|
Procedure GetGroupList(List : TStrings; WithIDs : Boolean);overload;
|
|
Procedure GetGroupList(List : TStrings; WithIDs : Boolean);overload;
|
|
Procedure GetGroupMembers(GID : TGID;List : TStrings);overload;
|
|
Procedure GetGroupMembers(GID : TGID;List : TStrings);overload;
|
|
-Procedure GetGroupMembers(Const GroupName : String;List : TStrings);overload;
|
|
|
|
|
|
+Procedure GetGroupMembers(Const GroupName : AnsiString;List : TStrings);overload;
|
|
|
|
|
|
{ Shadow password functions }
|
|
{ Shadow password functions }
|
|
|
|
|
|
{$ifdef Linux}
|
|
{$ifdef Linux}
|
|
-function getspnam(UserName : String): PPasswordFileEntry;
|
|
|
|
-function sgetspent(Line : String): PPasswordFileEntry;
|
|
|
|
|
|
+function getspnam(UserName : AnsiString): PPasswordFileEntry;
|
|
|
|
+function sgetspent(Line : AnsiString): PPasswordFileEntry;
|
|
|
|
|
|
-Procedure GetUserShadowData(Const UserName : String; Var Data : TPasswordFileEntry);overload;
|
|
|
|
|
|
+Procedure GetUserShadowData(Const UserName : AnsiString; Var Data : TPasswordFileEntry);overload;
|
|
Procedure GetUserShadowData(UID : TUID; Var Data : TPasswordFileEntry);overload;
|
|
Procedure GetUserShadowData(UID : TUID; Var Data : TPasswordFileEntry);overload;
|
|
{$endif}
|
|
{$endif}
|
|
|
|
|
|
{ Extra functions }
|
|
{ Extra functions }
|
|
|
|
|
|
-Function GetUserGroup(Const UserName : String) : String;
|
|
|
|
|
|
+Function GetUserGroup(Const UserName : AnsiString) : AnsiString;
|
|
|
|
|
|
Implementation
|
|
Implementation
|
|
|
|
|
|
@@ -61,18 +61,18 @@ EnoSuchGroupID = 'Unknown group ID: %d';
|
|
ENoShadowEntry = 'No shadow file entry for "%s"';
|
|
ENoShadowEntry = 'No shadow file entry for "%s"';
|
|
EShadowNotPermitted = 'Not enough permissions to access shadow password file';
|
|
EShadowNotPermitted = 'Not enough permissions to access shadow password file';
|
|
|
|
|
|
-Function getpwnam(Const UserName: String) : PPasswordRecord;
|
|
|
|
|
|
+Function getpwnam(Const UserName: AnsiString) : PPasswordRecord;
|
|
|
|
|
|
begin
|
|
begin
|
|
- Result:=pwd.fpgetpwnam(Pchar(UserName));
|
|
|
|
|
|
+ Result:=pwd.fpgetpwnam(PAnsiChar(UserName));
|
|
end;
|
|
end;
|
|
|
|
|
|
-Procedure GetUserData(Const UserName : String; Var Data : TPasswordRecord);
|
|
|
|
|
|
+Procedure GetUserData(Const UserName : AnsiString; Var Data : TPasswordRecord);
|
|
|
|
|
|
Var P : PPasswordRecord;
|
|
Var P : PPasswordRecord;
|
|
|
|
|
|
begin
|
|
begin
|
|
- P:=fpGetpwnam(pchar(UserName));
|
|
|
|
|
|
+ P:=fpGetpwnam(PAnsiChar(UserName));
|
|
If P<>Nil then
|
|
If P<>Nil then
|
|
Data:=P^
|
|
Data:=P^
|
|
else
|
|
else
|
|
@@ -91,7 +91,7 @@ begin
|
|
Raise EUserLookupError.CreateFmt(ENoSuchUserID,[Uid]);
|
|
Raise EUserLookupError.CreateFmt(ENoSuchUserID,[Uid]);
|
|
end;
|
|
end;
|
|
|
|
|
|
-function GetUserName(UID : TUID) : String;
|
|
|
|
|
|
+function GetUserName(UID : TUID) : AnsiString;
|
|
|
|
|
|
Var
|
|
Var
|
|
UserData : TPasswordRecord;
|
|
UserData : TPasswordRecord;
|
|
@@ -101,7 +101,7 @@ begin
|
|
Result:=UserData.pw_Name;
|
|
Result:=UserData.pw_Name;
|
|
end;
|
|
end;
|
|
|
|
|
|
-function GetUserId(Const UserName : String) : TUID;
|
|
|
|
|
|
+function GetUserId(Const UserName : AnsiString) : TUID;
|
|
|
|
|
|
Var
|
|
Var
|
|
UserData : TPasswordRecord;
|
|
UserData : TPasswordRecord;
|
|
@@ -111,7 +111,7 @@ begin
|
|
Result:=UserData.pw_uid;
|
|
Result:=UserData.pw_uid;
|
|
end;
|
|
end;
|
|
|
|
|
|
-function GetUserGId(Const UserName : String) : TGID;
|
|
|
|
|
|
+function GetUserGId(Const UserName : AnsiString) : TGID;
|
|
|
|
|
|
Var
|
|
Var
|
|
UserData : TPasswordRecord;
|
|
UserData : TPasswordRecord;
|
|
@@ -121,7 +121,7 @@ begin
|
|
Result:=UserData.pw_gid;
|
|
Result:=UserData.pw_gid;
|
|
end;
|
|
end;
|
|
|
|
|
|
-function GetUserDir(Const UserName : String): String;
|
|
|
|
|
|
+function GetUserDir(Const UserName : AnsiString): AnsiString;
|
|
|
|
|
|
Var
|
|
Var
|
|
UserData : TPasswordRecord;
|
|
UserData : TPasswordRecord;
|
|
@@ -131,7 +131,7 @@ begin
|
|
Result:=UserData.pw_dir;
|
|
Result:=UserData.pw_dir;
|
|
end;
|
|
end;
|
|
|
|
|
|
-function GetUserDescription(Const UserName : String): String;
|
|
|
|
|
|
+function GetUserDescription(Const UserName : AnsiString): AnsiString;
|
|
|
|
|
|
Var
|
|
Var
|
|
UserData : TPasswordRecord;
|
|
UserData : TPasswordRecord;
|
|
@@ -176,18 +176,18 @@ end;
|
|
---------------------------------------------------------------------}
|
|
---------------------------------------------------------------------}
|
|
|
|
|
|
|
|
|
|
-Function getgrnam(Const GroupName: String) : PGroup;
|
|
|
|
|
|
+Function getgrnam(Const GroupName: AnsiString) : PGroup;
|
|
|
|
|
|
begin
|
|
begin
|
|
- Result:=grp.fpgetgrnam(Pchar(GroupName));
|
|
|
|
|
|
+ Result:=grp.fpgetgrnam(PAnsiChar(GroupName));
|
|
end;
|
|
end;
|
|
|
|
|
|
-Procedure GetGroupData(Const GroupName : String; Var Data : TGroup); overload;
|
|
|
|
|
|
+Procedure GetGroupData(Const GroupName : AnsiString; Var Data : TGroup); overload;
|
|
|
|
|
|
Var P : PGroup;
|
|
Var P : PGroup;
|
|
|
|
|
|
begin
|
|
begin
|
|
- P:=fpGetgrnam(pchar(GroupName));
|
|
|
|
|
|
+ P:=fpGetgrnam(PAnsiChar(GroupName));
|
|
If P<>Nil then
|
|
If P<>Nil then
|
|
Data:=P^
|
|
Data:=P^
|
|
else
|
|
else
|
|
@@ -206,7 +206,7 @@ begin
|
|
Raise EGroupLookupError.CreateFmt(ENoSuchGroupID,[Gid]);
|
|
Raise EGroupLookupError.CreateFmt(ENoSuchGroupID,[Gid]);
|
|
end;
|
|
end;
|
|
|
|
|
|
-function GetGroupName(GID : TGID) : String;
|
|
|
|
|
|
+function GetGroupName(GID : TGID) : AnsiString;
|
|
|
|
|
|
Var
|
|
Var
|
|
G : TGroup;
|
|
G : TGroup;
|
|
@@ -216,7 +216,7 @@ begin
|
|
Result:=G.gr_name;
|
|
Result:=G.gr_name;
|
|
end;
|
|
end;
|
|
|
|
|
|
-function GetGroupId(Const GroupName : String) : TGID;
|
|
|
|
|
|
+function GetGroupId(Const GroupName : AnsiString) : TGID;
|
|
|
|
|
|
Var
|
|
Var
|
|
G : TGroup;
|
|
G : TGroup;
|
|
@@ -256,14 +256,14 @@ begin
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
-Function PCharListToStrings(P : PPChar; List : TStrings) : Integer;
|
|
|
|
|
|
+Function PCharListToStrings(P : PPAnsiChar; List : TStrings) : Integer;
|
|
|
|
|
|
begin
|
|
begin
|
|
List.Clear;
|
|
List.Clear;
|
|
While P^<>Nil do
|
|
While P^<>Nil do
|
|
begin
|
|
begin
|
|
List.Add(StrPas(P^));
|
|
List.Add(StrPas(P^));
|
|
- P:=PPChar(PChar(P)+SizeOf(PChar));
|
|
|
|
|
|
+ P:=PPAnsiChar(PAnsiChar(P)+SizeOf(PAnsiChar));
|
|
end;
|
|
end;
|
|
Result:=List.Count;
|
|
Result:=List.Count;
|
|
end;
|
|
end;
|
|
@@ -279,7 +279,7 @@ begin
|
|
PCharListToStrings(G.gr_mem,List);
|
|
PCharListToStrings(G.gr_mem,List);
|
|
end;
|
|
end;
|
|
|
|
|
|
-Procedure GetGroupMembers(Const GroupName : String;List : TStrings);
|
|
|
|
|
|
+Procedure GetGroupMembers(Const GroupName : AnsiString;List : TStrings);
|
|
|
|
|
|
Var
|
|
Var
|
|
G : TGroup;
|
|
G : TGroup;
|
|
@@ -291,19 +291,19 @@ end;
|
|
|
|
|
|
{ Shadow password functions }
|
|
{ Shadow password functions }
|
|
{$ifdef linux}
|
|
{$ifdef linux}
|
|
-function getspnam(UserName : String): PPasswordFileEntry;
|
|
|
|
|
|
+function getspnam(UserName : AnsiString): PPasswordFileEntry;
|
|
|
|
|
|
begin
|
|
begin
|
|
- result:=shadow.getspnam(Pchar(UserName));
|
|
|
|
|
|
+ result:=shadow.getspnam(PAnsiChar(UserName));
|
|
end;
|
|
end;
|
|
|
|
|
|
-function sgetspent(Line : String): PPasswordFileEntry;
|
|
|
|
|
|
+function sgetspent(Line : AnsiString): PPasswordFileEntry;
|
|
|
|
|
|
begin
|
|
begin
|
|
- Result:=shadow.sgetspent(Pchar(Line));
|
|
|
|
|
|
+ Result:=shadow.sgetspent(PAnsiChar(Line));
|
|
end;
|
|
end;
|
|
|
|
|
|
-Procedure GetUserShadowData(Const UserName : String; Var Data : TPasswordFileEntry);
|
|
|
|
|
|
+Procedure GetUserShadowData(Const UserName : AnsiString; Var Data : TPasswordFileEntry);
|
|
|
|
|
|
Var
|
|
Var
|
|
P : PPasswordFileEntry;
|
|
P : PPasswordFileEntry;
|
|
@@ -328,7 +328,7 @@ end;
|
|
{$endif}
|
|
{$endif}
|
|
{ Extra functions }
|
|
{ Extra functions }
|
|
|
|
|
|
-Function GetUserGroup(Const UserName : String) : String;
|
|
|
|
|
|
+Function GetUserGroup(Const UserName : AnsiString) : AnsiString;
|
|
|
|
|
|
begin
|
|
begin
|
|
GetGroupName(GetUserGid(UserName));
|
|
GetGroupName(GetUserGid(UserName));
|