📄 rc_readrightclass.pas
字号:
Sql.Clear;
Sql.Add('Select *');
Sql.Add('From TDBAssign');
Sql.Add('Where UOrUGName=''' + UserOrUserGroupName + '''');
Sql.Add('and UOrUGIden=''' + UserOrUserGroupIdentify + '''');
if DbResourceIdentify <> '' then
Sql.Add('and DbResIden=''' + DbResourceIdentify + '''');
try
Open;
DBResourceResult := 1;
except
end;
while not Eof do
begin
ts.Add(FieldByName('DBResName').AsString + '/' +
FieldByName('DBResIden').AsString +
'/' + FieldByName('DBRighName').AsString);
Next;
end;
end;
Result := ts;
end;
{ 该方法的相关参数:
UserOrUserGroupIdentify:使用这类型
UserOrUserGroupName: 使用者名称
该方法Result的意义:
所有合法的数据库资源、类型和权限 }
//校验用户或用户组是否存在======================================================
function TFunction_DB_ReadRight.UserOrUserGroupExist: Boolean;
begin
Result := False;
with ADOQuery do
begin
Close;
Sql.Clear;
Sql.Add('Select *');
if UserOrUserGroupIdentify = '用户' then
begin
Sql.Add('From TUserName');
Sql.Add('Where Lower(RTrim(UserName))=''' +
LowerCase(TrimRight(UserOrUserGroupName)) + '''');
end
else
begin
Sql.Add('From TUserGroup');
Sql.Add('Where Lower(RTrim(UserGName))=''' +
LowerCase(TrimRight(UserOrUserGroupName)) + '''');
end;
try
Open;
except Exit;
end;
if RecordCount <> 0 then
Result := True;
Close;
end;
end;
//校验功能资源是否存在==========================================================
function TFunction_DB_ReadRight.FunctionResourceExist: Boolean;
begin
Result := False;
with ADOQuery do
begin
if Active then
Close;
Sql.Clear;
Sql.Add('Select *');
Sql.Add('From TFunctionResource');
Sql.Add('Where FunResName=''' + FunctionResourceName + '''');
try
Open;
except Exit;
end;
if RecordCount <> 0 then
Result := True;
Close;
end;
end;
//获取用户密码==================================================================
function TFunction_DB_ReadRight.GetUserPassword(var UserResult: integer):
string;
begin
Result := '';
UserResult := 0;
UserOrUserGroupIdentify := '用户';
if not UserOrUserGroupExist then
Exit;
with ADOQuery do
begin
if Active then
Close;
Sql.Clear;
Sql.Add('Select *');
begin
Sql.Add('From TUserName');
Sql.Add('Where Lower(RTrim(UserName))=''' +
LowerCase(TrimRight(UserOrUserGroupName)) + '''');
end;
try
Open;
except Exit;
end;
if RecordCount <> 0 then
begin
UserResult := 1;
Result := FieldByName('UserPsd').AsString;
end;
Close;
end;
end;
{ 该方法的相关参数:
UserName:用户名
该方法Result的意义:
用户密码 }
//获取用户组所包含的用户========================================================
function TFunction_DB_ReadRight.GetUserGroupResource(var UserGroupResult:
integer): TStrings;
var
ts: TStrings;
begin
UserGroupResult := 0;
UserOrUserGroupIdentify := '用户组';
if not UserOrUserGroupExist then
Exit;
ts := TStringList.Create;
Result := ts;
with ADOQuery do
begin
if Active then
Close;
Sql.Clear;
Sql.Add('Select *');
Sql.Add('From TUserName');
try
Open;
UserGroupResult := 1;
except Exit;
end;
while not Eof do
begin
if pos(UserOrUserGroupName, FieldByName('UserGName').AsString) <> 0 then
ts.Add(FieldByName('UserName').AsString);
Next;
end;
end;
Result := ts;
{Help}
end;
{ 该方法的相关参数:
UserGroupName:用户组名称
该方法Result的意义:
用户组所包含的用户}
//获取用户所属用户组============================================================
function TFunction_DB_ReadRight.GetUserResource(var UserResourceResult:
integer): string;
begin
Result := '';
UserResourceResult := 0;
UserOrUserGroupIdentify := '用户';
if not UserOrUserGroupExist then
Exit;
with ADOQuery do
begin
if Active then
Close;
Sql.Clear;
Sql.Add('Select *');
begin
Sql.Add('From TUserName');
Sql.Add('Where UserName=''' + UserOrUserGroupName + '''');
end;
try
Open;
except Exit;
end;
if RecordCount <> 0 then
begin
UserResourceResult := 1;
Result := FieldByName('UserGName').AsString;
end;
Close;
end;
end;
{ 该方法的相关参数:
UserOrUserGroupIdentify:使用这类型
该方法Result的意义:
用户所隶属的用户组}
function TFunction_DB_ReadRight.GetAllResourceBelongtheUser: TStrings;
var
AllResource: TStrings;
AllGroup: TStrings;
TempAllSourceStr: string;
TempS: string;
i: integer;
TempPos: integer;
begin
AllResource := TStringList.Create;
AllGroup := TStringList.Create;
with ADOQuery do
begin
Close;
SQL.Clear;
SQL.Add('select * from tpowerassign where UOrUGName=' +
QuotedStr(UserOrUserGroupName));
try
Open;
except
MessageDlg('', mtInformation, [mbOk], 0);
Exit;
end;
while not Eof do
begin
TempAllSourceStr := TempAllSourceStr +
Trim(FieldByName('FunResName').AsString) + ',';
Next;
end;
end;
AllGroup := GetAllGroupIncludeUsers;
for i := 0 to AllGroup.Count - 1 do
begin
with ADOQuery do
begin
Close;
SQL.Clear;
SQL.Add('select * from tpowerassign where UOrUGName=' +
QuotedStr(AllGroup[i]));
try
Open;
except
MessageDlg('', mtInformation, [mbOk], 0);
Exit;
end;
TempAllSourceStr := TempAllSourceStr +
Trim(FieldByName('FunResName').AsString) + ',';
end;
end;
if Copy(TempAllSourceStr, Length(TempAllSourceStr), 1) = ',' then
TempAllSourceStr := Copy(TempAllSourceStr, 1, Length(TempAllSourceStr) - 1);
while Pos(',', TempAllSourceStr) <> 0 do
begin
TempPos := Pos(',', TempAllSourceStr);
TempS := Copy(TempAllSourceStr, 1, TempPos - 1);
AllResource.Add(Trim(TempS));
TempAllSourceStr := Copy(TempAllSourceStr, TempPos + 1,
Length(TempAllSourceStr) - TempPos);
end;
AllResource.Add(TempAllSourceStr);
AllGroup.Free;
Result := AllResource;
end;
function TFunction_DB_ReadRight.GetAllGroupIncludeUsers: TStrings;
var
TempSs: TStrings;
begin
TempSs := TStringList.Create;
with ADOQuery do
begin
Close;
SQL.Clear;
SQL.Add('select * from tusername where username=' +
QuotedStr(UserOrUserGroupName));
try
Open;
except
MessageDlg('', mtinformation, [mboK], 0);
Exit;
end;
while not Eof do
begin
TempSs.Add(Trim(FieldByName('UserGName').AsString));
Next;
end;
CLose;
end;
Result := TempSs;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -