亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? wssecurity.~pas

?? 企業ERP管理系統
?? ~PAS
?? 第 1 頁 / 共 2 頁
字號:
unit WSSecurity;
{******************************************
模塊:用戶基類 權限實現
日期:2002年11月1日
作者:胡建平
更新:
******************************************}

interface

uses
  SysUtils, Windows, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, ADODB, DB, WSLogin, CommonDM, mxArrays, ActnList, Types;

type
  TGuarder = class(TObject)
  private
    FConnected: Boolean;
    FLoginPrompt: Boolean;
    FPassword: string;
    FUserID: Integer;
    FActionArray: TIntArray;
    FPmsArray: TIntArray;
    FOldAppActionExecute: TActionEvent;
    function GetUserName: string;
    function GetCompanyUserName: string;
    procedure SetConnected(Value: Boolean);
    procedure SetUserID(Value: Integer);
    function GetPackToGoalUnit: string;
    function GetForeignCurrencyFlag: string;
    function GetGoodsCodeToGoodsName: string;
    function GetContractSLPrice: string;
    function GetLastSLPrice: string;
    function GetLastadjustSLPrice: string;
    function GetUseDiscountSLFlag: string;
    function GetContractPCPrice: string;
    function GetLastPCPrice: string;
    function GetLastadjustPCPrice: string;



    function GetFillInPrintFlag: string;
    function GetRepeatPrintFlag: string;
    function GetExportCashACReckoningFlag: string;
    function GetPrintCashACReckoningFlag: string;

    function GetPermissionID(const PermissionName: string): Integer;
    procedure DoActionExecute(Action: TBasicAction; var Handled: Boolean);
  protected
    procedure RegisterAction(Action: TBasicAction; PermissionID: Integer);
    procedure UnRegisterAction(Action: TBasicAction);
  public
    constructor Create;
    destructor Destroy; override;
    procedure Close;
    procedure Open;
    function HasPermission(PermissionID: Integer): Boolean; overload;
    function HasPermission(Action: TBasicAction): Boolean; overload;
    function HasRight(PermissionName: String): Boolean; // 胡建平 2002-11-11
    procedure RegisterActions(Actions: array of TBasicAction;
      PermissionIDs: TIntegerDynArray); overload;
    procedure RegisterActions(Actions: array of TBasicAction;
      PermissionNames: TStringDynArray); overload;
    procedure UnRegisterActions(Actions: array of TBasicAction);
    property Connected: Boolean read FConnected write SetConnected;
    property LoginPrompt: Boolean read FLoginPrompt write FLoginPrompt;
    property Password: string read FPassword write FPassword;
    property UserID: Integer read FUserID write SetUserID;
    property UserName: string read GetUserName;
    property CompanyUserName: string read GetCompanyUserName;
    property PackToGoalUnit: string read GetPackToGoalUnit;
    property GoodsCodeToGoodsName: string read GetGoodsCodeToGoodsName;
    property ForeignCurrencyFlag: string read GetForeignCurrencyFlag;

    property ContractSLPrice: string read GetContractSLPrice;
    property LastSLPrice: string read GetLastSLPrice;
    property LastadjustSLPrice: string read GetLastadjustSLPrice;
    property UseDiscountSLFlag: string read GetUseDiscountSLFlag;
    property ContractPCPrice: string read GetContractPCPrice;
    property LastPCPrice: string read GetLastPCPrice;
    property LastadjustPCPrice: string read GetLastadjustPCPrice;

    property FillInPrintFlag: string read GetFillInPrintFlag;
    property RepeatPrintFlag: string read GetRepeatPrintFlag;
    property ExportCashACReckoningFlag: string read GetExportCashACReckoningFlag;
    property PrintCashACReckoningFlag: string read GetPrintCashACReckoningFlag;



  end;

function IsCorrectPassword(UserID: Integer; const Password: string): Boolean;

function Guarder: TGuarder;

implementation

uses WSUtils, MAIN, Variants;

var
  FGuarder: TGuarder;

function IsCorrectPassword(UserID: Integer; const Password: string): Boolean;
// 用戶口令驗證
var
  ADOTemp: TADODataSet;
begin
  { TODO -cCode : 添加判斷密碼是否正確的代碼 }
  ADOTemp := TADODataSet.Create(nil);
  ADOTemp.Connection := CommonData.acnConnection;
  with ADOTemp do
  begin
    close;
    if inttostr(UserID)<>'-1' then
        CommandText :='select * from MSUser where ID=' + inttostr(UserID)
        +' and Password=' + inttostr(GetPassword(Password))
        +' and RecordState<>' + QuotedStr('刪除')
    else
        CommandText :='select * from MSRole where RoleID=' + inttostr(UserID)
        +' and Password=' + inttostr(GetPassword(Password))
        +' and RecordState<>' + QuotedStr('刪除')    ;

//    showmessage(CommandText);
    open;
    if RecordCount > 0 then
      Result := true
    else
      Result := false;
  end;
  ADOTemp.Free;
end;

function Guarder: TGuarder;
begin
  if FGuarder = nil then
  begin
    FGuarder := TGuarder.Create;
  end;
  Result := FGuarder;
end;

{
*********************************** TGuarder ***********************************
}
procedure TGuarder.Close;
begin
  SetConnected(False);
end;

procedure TGuarder.Open;
begin
  SetConnected(True);
end;

procedure TGuarder.SetUserID(Value: Integer);
begin
  if FUserID <> Value then
  begin
    FUserID := Value;
  end;
end;

function TGuarder.GetUserName: string;
var
  aqrTemp: TADODataSet;
begin
  if Connected then { TODO : 根據 UserID 查詢取得用戶名 }
  begin
    aqrTemp := TADODataSet.Create(nil);
    aqrTemp.Connection := CommonData.acnConnection;
    with aqrTemp do
    begin
      close;
      if inttostr(UserID)='-1' then
        CommandText := 'select Name from MSRole where RoleID=' + inttostr(UserID)
        else CommandText := 'select Name from MSUser where ID=' + inttostr(UserID)      ;
      open;
      first;
      Result := Fieldbyname('Name').AsString;
    end;
  end;
end;

function TGuarder.HasRight(PermissionName: String): Boolean;//胡建平 2002-11-11
var  aqrTemp: TADODataSet;
begin
  if Connected then { TODO : 根據 UserID 查詢取用戶是否具有指定權限 }
  begin
    aqrTemp := TADODataSet.Create(nil);
    aqrTemp.Connection := CommonData.acnConnection;
    with aqrTemp do
    begin
      close;
      CommandText :=' select id , name from MSPermission '
          +' where id in (select PermissionID from '
          +' MSRolePermissions  where RoleID='+inttostr(UserID)+'  ) '
          +' and name = ' + QuotedStr(Trim(PermissionName)) ;
      open;
      if IsEmpty then
        Result := False
      else
        Result := True;
    end;
  end
  else
    Result := False;
end;

function TGuarder.HasPermission(PermissionID: Integer): Boolean;
var
  aqrTemp: TADODataSet;
begin
  if UserID = 1 then Result := True // 系統管理員擁有全部全限
  else if Connected then { TODO : 根據 UserID 查詢取用戶是否具有指定權限 }
  begin
    aqrTemp := TADODataSet.Create(nil);
    aqrTemp.Connection := CommonData.acnConnection;
    with aqrTemp do
    begin
      close;
      CommandText := 'SELECT * FROM MSRolePermissions WHERE RoleID = ' + IntToStr(UserID) +
        ' AND PermissionID = ' + IntToStr(PermissionID);
//
//      CommandText := ' select a.Name from MSPermission as a ' +
//        ' inner join MSRolePermissions as b on a.ID=b.PermissionID and a.ID=' + inttostr(PermissionID) +
//        ' inner join MSRole as c on b.RoleID=c.ID ' +
//        ' and ((c.ID=' + inttostr(UserID) + ' and c.IsUserTerm=0) or ' +
//        ' (' + inttostr(UserID) + '=(select UserID from MSUserTeamUsers where UserTermID=b.RoleID) and c.IsUserTerm=1))';
      Open;
      if IsEmpty then
        Result := False
      else
        Result := True;
    end;
  end
  else
    Result := False;
end;

procedure TGuarder.SetConnected(Value: Boolean);
var
  WSLoginForm: TWSLoginForm;
begin
  if FConnected <> Value then
  begin
    if Value then
    begin
      if LoginPrompt then { TODO : 顯示 WSLoginForm 登錄對話框以獲取 UserID 和 Password };
      { TODO : 檢查 UserID 和 Password,如不正確則觸發登錄異常 }
      begin
        WSLoginForm := TWSLoginForm.Create(nil);
        if WSLoginForm.ShowModal = mrOk then
//        Application.CreateForm(TMainForm, MainForm)
          //showmessage('Login IN!')
        else
        begin
          Application.Terminate;
        end;
      end;
    end;
    FConnected := Value;
  end;
end;

procedure TGuarder.UnRegisterActions(Actions: array of TBasicAction);
var
  I: Integer;
begin
  for I := 0 to Length(Actions) do UnRegisterAction(Actions[I]);
end;

function TGuarder.GetCompanyUserName: string;
var aqrTemp: TADODataSet;
begin
  if Connected then { TODO : 直接取得用戶公司名稱--MSCompanyUser.name }
  begin
    aqrTemp := TADODataSet.Create(nil);
    aqrTemp.Connection := CommonData.acnConnection;
    with aqrTemp do
    begin
      close;
      CommandText := 'select Name from MSCompanyUser where RecordState<>'
        + QuotedStr('刪除');
      open;
      first;
      if Fieldbyname('Name').IsNull then
           Result := 'NiceSoft.net'
      else Result := Fieldbyname('Name').AsString;
    end;
  end;
end;

function TGuarder.GetPackToGoalUnit: string;
var ADSTemp: TADODataSet;
begin
  if Connected then { TODO : 直接取得先輸入包裝單位的值--MSSysParametar.name }
  begin
    ADSTemp := TADODataSet.Create(nil);
    ADSTemp.Connection := CommonData.acnConnection;
    with ADSTemp do
    begin
      close;
      CommandText := 'select * from MSSysParameter where ParaName like '
        + QuotedStr('%輸入包裝單位%');
      open;
      first;
      if Fieldbyname('ParaValues').IsNull then
           Result := '否'
      else Result := Fieldbyname('ParaValues').AsString;
    end;
  end;
end;

function TGuarder.GetGoodsCodeToGoodsName: string;
var ADSTemp: TADODataSet;
begin
  if Connected then { TODO : 直接取得先輸入包裝單位的值--MSSysParametar.name }
  begin
    ADSTemp := TADODataSet.Create(nil);
    ADSTemp.Connection := CommonData.acnConnection;
    with ADSTemp do
    begin
      close;
      CommandText := 'select * from MSSysParameter where ParaName like '
        + QuotedStr('%先按商品編號輸入單據%');
      open;
      first;
      if Fieldbyname('ParaValues').IsNull then
           Result := '否'
      else Result := Fieldbyname('ParaValues').AsString;
    end;
  end;
end;

constructor TGuarder.Create;
begin
  with Application do
  begin
    FOldAppActionExecute := OnActionExecute;
    OnActionExecute := DoActionExecute;
  end;
  FActionArray := TIntArray.Create(0, 0);
  FPmsArray := TIntArray.Create(0, 0);
end;

destructor TGuarder.Destroy;
begin
  with Application do
    OnActionExecute := FOldAppActionExecute;
  FPmsArray.Free;
  FActionArray.Free;
  inherited;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
首页国产丝袜综合| 波多野结衣中文字幕一区二区三区| 日本少妇一区二区| 成人午夜免费视频| 欧美日韩激情一区二区三区| 国产色产综合色产在线视频| 亚洲国产一区视频| 成人精品免费视频| 欧美刺激脚交jootjob| 亚洲一卡二卡三卡四卡| 成人黄色在线网站| 精品电影一区二区| 日韩一区精品字幕| 日本韩国精品一区二区在线观看| 久久久久久久性| 免费高清成人在线| 欧美日韩国产另类不卡| 亚洲人亚洲人成电影网站色| 国产一区二区三区黄视频 | 国产精品国产自产拍在线| 奇米色一区二区三区四区| 在线观看欧美日本| 1024成人网| 成人午夜av电影| 国产欧美日韩另类一区| 国产一区二区三区久久悠悠色av| 欧美精品v国产精品v日韩精品| 亚洲嫩草精品久久| 91玉足脚交白嫩脚丫在线播放| 中文字幕的久久| 岛国精品在线观看| 国产精品黄色在线观看| 成人综合婷婷国产精品久久蜜臀 | 99国产精品视频免费观看| 国产亚洲人成网站| 国产真实乱偷精品视频免| xvideos.蜜桃一区二区| 加勒比av一区二区| www欧美成人18+| 国产99久久久国产精品潘金 | 国内外成人在线| 欧美大度的电影原声| 久久精品噜噜噜成人av农村| 日韩视频一区二区三区在线播放| 免费视频最近日韩| 欧美成人在线直播| 国产成+人+日韩+欧美+亚洲| 中文av一区特黄| 99久久国产综合精品麻豆| 亚洲三级免费电影| 欧美日本高清视频在线观看| 午夜视频在线观看一区| 久久久久久**毛片大全| 国产福利一区在线观看| 亚洲欧洲精品一区二区三区| 一本大道久久a久久综合 | 国产精品久久777777| 91在线观看成人| 亚洲国产sm捆绑调教视频| 欧美电影一区二区| 国产精品亚洲专一区二区三区| 国产精品久久久久一区| 欧美视频一区二区三区| 极品少妇xxxx精品少妇| 国产精品黄色在线观看| 欧美日韩国产综合久久| 国产伦精品一区二区三区免费| 国产精品久久久一区麻豆最新章节| 色婷婷综合久久久中文一区二区| 亚洲成人av在线电影| 26uuu亚洲综合色欧美| 99国产一区二区三精品乱码| 奇米777欧美一区二区| 国产精品久久久久精k8 | 亚洲国产一区二区在线播放| 欧美成人女星排名| 91成人免费在线| 久久精品国产第一区二区三区| 国产精品国产三级国产a| 在线成人免费观看| 成人小视频免费在线观看| 天天色天天操综合| 中文字幕日韩av资源站| 日韩视频中午一区| 欧美自拍丝袜亚洲| 国产精品影视在线观看| 性做久久久久久免费观看| 国产婷婷精品av在线| 日韩一区二区在线看片| 色菇凉天天综合网| 成人在线视频首页| 激情小说亚洲一区| 日韩精品免费专区| 一区二区三区 在线观看视频| 久久精品一级爱片| 日韩欧美国产综合| 56国语精品自产拍在线观看| 在线观看日韩一区| 91女神在线视频| 成人av在线网站| 国产a久久麻豆| 国产乱子伦一区二区三区国色天香 | 日韩一区二区三区视频在线| 在线一区二区三区四区| 波多野结衣中文字幕一区二区三区 | 亚洲人午夜精品天堂一二香蕉| 国产午夜一区二区三区| 精品免费一区二区三区| 欧美一区二区三区视频免费| 欧美日韩一区三区四区| 91极品视觉盛宴| 91小视频在线免费看| 成人av小说网| 99久久精品国产一区二区三区| 成人免费高清在线观看| 成人激情免费网站| 成人久久18免费网站麻豆| 国产999精品久久久久久绿帽| 韩国一区二区在线观看| 黑人精品欧美一区二区蜜桃| 久久国产精品色| 欧美亚洲综合在线| 91官网在线观看| 欧美人伦禁忌dvd放荡欲情| 欧美午夜精品久久久久久超碰| 欧美三片在线视频观看| 51精品国自产在线| 欧美精品一区二区三区蜜桃视频 | 五月天视频一区| 五月综合激情网| 久久99精品久久久久久动态图| 美国十次综合导航| 国产精品123| 99久久久久免费精品国产 | 亚洲人成7777| 亚洲福利一二三区| 久久精品噜噜噜成人av农村| 国产美女久久久久| 91网址在线看| 欧美一区二区三区男人的天堂| 欧美一区二区高清| 国产欧美日本一区二区三区| **性色生活片久久毛片| 亚洲国产视频直播| 精品亚洲成a人| 91在线观看污| 日韩欧美色电影| 国产精品盗摄一区二区三区| 亚洲一区在线电影| 国产一区二区三区电影在线观看| a美女胸又www黄视频久久| 91精品国产手机| 国产精品三级电影| 天堂资源在线中文精品| 国内一区二区视频| 欧美影视一区在线| 国产日韩欧美一区二区三区乱码 | 国产喂奶挤奶一区二区三区 | 久久精品综合网| 亚洲在线观看免费视频| 国产自产v一区二区三区c| 色综合久久中文综合久久97| 欧美sm美女调教| 一区二区三区四区av| 国产一区二区三区免费看| 91久久香蕉国产日韩欧美9色| 精品动漫一区二区三区在线观看| 亚洲欧美日韩国产综合在线| 精品亚洲成a人| 欧美高清视频一二三区| 亚洲特黄一级片| 国产精品资源在线看| 91精品国产综合久久精品| 亚洲色欲色欲www| 国产精品主播直播| 日韩欧美国产三级| 视频一区在线播放| 一本色道亚洲精品aⅴ| 国产日韩成人精品| 国内精品伊人久久久久影院对白| 欧洲精品在线观看| 亚洲视频一区二区在线观看| 国产寡妇亲子伦一区二区| 日韩欧美国产高清| 石原莉奈在线亚洲三区| 色综合久久综合中文综合网| 日本一二三不卡| 懂色中文一区二区在线播放| 欧美一区二区福利在线| 丝袜亚洲精品中文字幕一区| 欧美在线一区二区| 一区二区高清视频在线观看| 99v久久综合狠狠综合久久| 亚洲国产经典视频| 懂色av中文字幕一区二区三区| wwww国产精品欧美| 国产一区二区三区综合| 国产三区在线成人av| 国产精品亚洲一区二区三区在线| 精品国产伦一区二区三区观看体验|