⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rc_readrightclass.pas

📁 亚惠快餐管理信息系统 包括亚惠快餐管理的各项功能
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    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 + -