📄 un_actions.pas
字号:
unit Un_Actions;
interface
uses
classes, SysUtils, Un_DAO, Un_System;
type
TActionPermission=class(TInterfacedObject, IActionPermission)
private
FIsSA: Boolean;
FDAO: TDAO;
public
constructor Create;
destructor Destroy; override;
procedure LoadActions(IsSA: Boolean; UId, TreeId: Integer);
function GetPermission(ActionId: string): Boolean;
end;
implementation
{ TActionPermission }
constructor TActionPermission.Create;
begin
FDAO:= TDAO.Create;
end;
destructor TActionPermission.Destroy;
begin
FDAO.Free;
inherited;
end;
function TActionPermission.GetPermission(ActionId: string): Boolean;
begin
Result:= False;
if FIsSA then begin
Result:= True;
Exit;
end;
FDAO.ResultSet.First;
while not FDAO.ResultSet.Eof do begin
if Pos(ActionId, FDAO.ResultSet.FieldByName('Actions').AsString)<>0 then begin
Result:= True;
Break;
end;
FDAO.ResultSet.Next;
end;
end;
procedure TActionPermission.LoadActions(IsSA: Boolean; UId, TreeId: Integer);
begin
FIsSA:= IsSA;
if FIsSA then
Exit;
FDAO.SQL:= 'Select Actions From UserRole, MyRoles, MyUsers, Permissions '
+'Where UserRole.UId=MyUsers.Id '
+'and MyUsers.Id='+IntToStr(UId)+' and MyUsers.Useable=1 '
+'and UserRole.RId=MyRoles.Id and MyRoles.Useable=1 '
+'and Permissions.RoleId=MyRoles.Id '
+'and Permissions.TreeId='+IntToStr(TreeId);
FDAO.ExecuteQuery;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -