297 lines
8.9 KiB
Plaintext
297 lines
8.9 KiB
Plaintext
unit DPrintApproveRst;
|
|
|
|
interface
|
|
|
|
uses
|
|
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
|
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;
|
|
|
|
type
|
|
TDlgPrintApproveRst = class(TForm)
|
|
pnBottom: TPanel;
|
|
btnOk: TButton;
|
|
lbMsg: TLabel;
|
|
mmReason: TMemo;
|
|
procedure btnOkClick(Sender: TObject);
|
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|
private
|
|
{ Private declarations }
|
|
public
|
|
{ Public declarations }
|
|
Constructor Create(aOwner: TComponent; nType: Integer; sResp: String);
|
|
procedure CreateParams(var Params: TCreateParams); override; // 작업표시줄에 표시
|
|
|
|
procedure process_WM_SYSCOMMAND(var msg: TWMSysCommand); Message WM_SYSCOMMAND;
|
|
end;
|
|
|
|
var
|
|
DlgPrintApproveRst: TDlgPrintApproveRst;
|
|
|
|
implementation
|
|
|
|
uses
|
|
superobject, ManagerPrint, ManagerService;
|
|
|
|
resourcestring
|
|
RS_NotFoundPrintInfo = '출력 정보를 찾을 수 없습니다. (%s)';
|
|
RS_PrintReqReject = '출력 요청이 반려 되었습니다.';
|
|
RS_MsgError = '오류가 발생했습니다';
|
|
RS_UsbExcept = 'USB 매체 예외';
|
|
RS_UsbReqPass = 'USB 매체 예외가 승인 되었습니다.';
|
|
RS_UsbReqReject = 'USB 매체 예외 요청이 반려 되었습니다.';
|
|
RS_UrlExcept = '브라우저 접근 예외';
|
|
RS_UrlReqPass = '브라우저 접근 예외가 승인 되었습니다.';
|
|
RS_UrlReqReject = '브라우저 접근 예외 요청이 반려 되었습니다.';
|
|
RS_MtpExcept = 'MTP 매체 예외';
|
|
RS_MtpReqPass = 'MTP 매체 예외가 승인 되었습니다.';
|
|
RS_MtpReqReject = 'MTP 매체 예외 요청이 반려 되었습니다.';
|
|
RS_BtExcept = 'Bluetooth 매체 예외';
|
|
RS_BtReqPass = 'Bluetooth 매체 예외가 승인 되었습니다.';
|
|
RS_BtReqReject = 'Bluetooth 매체 예외 요청이 반려 되었습니다.';
|
|
RS_CdExcept = 'CD/DVD 매체 예외';
|
|
RS_CdReqPass = 'CD/DVD 매체 예외가 승인 되었습니다.';
|
|
RS_CdReqReject = 'CD/DVD 매체 예외 요청이 반려 되었습니다.';
|
|
|
|
{$R *.dfm}
|
|
|
|
Constructor TDlgPrintApproveRst.Create(aOwner: TComponent; nType: Integer; sResp: String);
|
|
var
|
|
O: ISuperObject;
|
|
pEnt: PPrtEnt;
|
|
begin
|
|
Inherited Create(aOwner);
|
|
|
|
O := nil;
|
|
try
|
|
O := SO(sResp);
|
|
except
|
|
// error
|
|
end;
|
|
|
|
if O = nil then
|
|
begin
|
|
lbMsg.Caption := RS_MsgError;
|
|
exit;
|
|
end;
|
|
|
|
mmReason.Text := O.S['reason'];
|
|
|
|
case nType of
|
|
1 : // 출력
|
|
begin
|
|
if O.S['result'] = 'true' then
|
|
begin
|
|
// O.S['watermark']
|
|
pEnt := gMgSvc.MgPrt.GetPrintInfo(O.S['taskId']);
|
|
if pEnt = nil then
|
|
begin
|
|
lbMsg.Caption := Format(RS_NotFoundPrintInfo, [O.S['taskId']]);
|
|
exit;
|
|
end;
|
|
|
|
pEnt.WInfo.bUseWM := O.S['watermark'] = 'true';
|
|
if pEnt.dtAprv = 0 then
|
|
begin
|
|
pEnt.dtAprv := Now;
|
|
gMgSvc.MgPrt.Save;
|
|
end;
|
|
|
|
gMgSvc.DoPrint(pEnt);
|
|
end else begin
|
|
pEnt := gMgSvc.MgPrt.GetPrintInfo(O.S['taskId']);
|
|
if pEnt <> nil then
|
|
gMgSvc.MgPrt.DelPrintInfo(pEnt.sId, true);
|
|
|
|
lbMsg.Caption := RS_PrintReqReject;
|
|
end;
|
|
end;
|
|
2 : // USB
|
|
begin
|
|
Caption := RS_UsbExcept;
|
|
if O.S['result'] = 'true' then
|
|
begin
|
|
lbMsg.Caption := RS_UsbReqPass;
|
|
|
|
mmReason.Lines.Add('');
|
|
mmReason.Lines.Add(O.S['serial']);
|
|
|
|
gMgSvc.PrefModel.IgrUsbSerials := gMgSvc.PrefModel.IgrUsbSerials + ';' + O.S['serial'];
|
|
gMgSvc.PrefModel.IgrUsbSerialList.Add(O.S['serial']);
|
|
|
|
gMgSvc.SleepPolicy.IgrUsbSerials := gMgSvc.SleepPolicy.IgrUsbSerials + ';' + O.S['serial'];
|
|
gMgSvc.SleepPolicy.IgrUsbSerialList.Add(O.S['serial']);
|
|
|
|
if gMgSvc.VulPolicy.Loaded then
|
|
begin
|
|
gMgSvc.VulPolicy.IgrUsbSerials := gMgSvc.VulPolicy.IgrUsbSerials + ';' + O.S['serial'];
|
|
gMgSvc.VulPolicy.IgrUsbSerialList.Add(O.S['serial']);
|
|
end;
|
|
|
|
if gMgSvc.OffPolicy.Loaded then
|
|
begin
|
|
gMgSvc.OffPolicy.IgrUsbSerials := gMgSvc.OffPolicy.IgrUsbSerials + ';' + O.S['serial'];
|
|
gMgSvc.OffPolicy.IgrUsbSerialList.Add(O.S['serial']);
|
|
end;
|
|
|
|
if gMgSvc.ExpPolicy.Loaded then
|
|
begin
|
|
gMgSvc.ExpPolicy.IgrUsbSerials := gMgSvc.ExpPolicy.IgrUsbSerials + ';' + O.S['serial'];
|
|
gMgSvc.ExpPolicy.IgrUsbSerialList.Add(O.S['serial']);
|
|
end;
|
|
end else begin
|
|
lbMsg.Caption := RS_UsbReqReject;
|
|
|
|
mmReason.Lines.Add('');
|
|
mmReason.Lines.Add(O.S['serial']);
|
|
end;
|
|
end;
|
|
3 : // 브라우저 접근 차단
|
|
begin
|
|
Caption := RS_UrlExcept;
|
|
if O.S['result'] = 'true' then
|
|
begin
|
|
lbMsg.Caption := RS_UrlReqPass;
|
|
|
|
mmReason.Lines.Add('');
|
|
mmReason.Lines.Add(O.S['domain']);
|
|
|
|
gMgSvc.PrefModel.UrlBlockExcpList := gMgSvc.PrefModel.UrlBlockExcpList + '|' + O.S['domain'];
|
|
gMgSvc.SleepPolicy.UrlBlockExcpList := gMgSvc.SleepPolicy.UrlBlockExcpList + '|' + O.S['domain'];
|
|
|
|
if gMgSvc.VulPolicy.Loaded then
|
|
gMgSvc.VulPolicy.UrlBlockExcpList := gMgSvc.VulPolicy.UrlBlockExcpList + '|' + O.S['domain'];
|
|
|
|
if gMgSvc.OffPolicy.Loaded then
|
|
gMgSvc.OffPolicy.UrlBlockExcpList := gMgSvc.OffPolicy.UrlBlockExcpList + '|' + O.S['domain'];
|
|
|
|
if gMgSvc.ExpPolicy.Loaded then
|
|
gMgSvc.ExpPolicy.UrlBlockExcpList := gMgSvc.ExpPolicy.UrlBlockExcpList + '|' + O.S['domain'];
|
|
end else begin
|
|
lbMsg.Caption := RS_UrlReqReject;
|
|
|
|
mmReason.Lines.Add('');
|
|
mmReason.Lines.Add(O.S['domain']);
|
|
end;
|
|
end;
|
|
4 : ; // DRM 복호화
|
|
5 : ; // 파일 반출
|
|
6 : // MTP
|
|
begin
|
|
Caption := RS_MtpExcept;
|
|
if O.S['result'] = 'true' then
|
|
begin
|
|
lbMsg.Caption := RS_MtpReqPass;
|
|
|
|
mmReason.Lines.Add('');
|
|
mmReason.Lines.Add(O.S['serial']);
|
|
|
|
gMgSvc.PrefModel.MtpExcept := gMgSvc.PrefModel.MtpExcept + ';' + O.S['serial'];
|
|
gMgSvc.SleepPolicy.MtpExcept := gMgSvc.SleepPolicy.MtpExcept + ';' + O.S['serial'];
|
|
|
|
if gMgSvc.VulPolicy.Loaded then
|
|
gMgSvc.VulPolicy.MtpExcept := gMgSvc.VulPolicy.MtpExcept + ';' + O.S['serial'];
|
|
|
|
if gMgSvc.OffPolicy.Loaded then
|
|
gMgSvc.OffPolicy.MtpExcept := gMgSvc.OffPolicy.MtpExcept + ';' + O.S['serial'];
|
|
|
|
if gMgSvc.ExpPolicy.Loaded then
|
|
gMgSvc.ExpPolicy.MtpExcept := gMgSvc.ExpPolicy.MtpExcept + ';' + O.S['serial'];
|
|
end else begin
|
|
lbMsg.Caption := RS_MtpReqReject;
|
|
|
|
mmReason.Lines.Add('');
|
|
mmReason.Lines.Add(O.S['serial']);
|
|
end;
|
|
end;
|
|
7 : // 블루투스
|
|
begin
|
|
Caption := RS_BtExcept;
|
|
if O.S['result'] = 'true' then
|
|
begin
|
|
lbMsg.Caption := RS_BtReqPass;
|
|
|
|
mmReason.Lines.Add('');
|
|
mmReason.Lines.Add(O.S['serial']);
|
|
|
|
gMgSvc.PrefModel.BlueExcept := gMgSvc.PrefModel.BlueExcept + ';' + O.S['serial'];
|
|
|
|
gMgSvc.SleepPolicy.BlueExcept := gMgSvc.SleepPolicy.BlueExcept + ';' + O.S['serial'];
|
|
|
|
if gMgSvc.VulPolicy.Loaded then
|
|
gMgSvc.VulPolicy.BlueExcept := gMgSvc.VulPolicy.BlueExcept + ';' + O.S['serial'];
|
|
|
|
if gMgSvc.OffPolicy.Loaded then
|
|
gMgSvc.OffPolicy.BlueExcept := gMgSvc.OffPolicy.BlueExcept + ';' + O.S['serial'];
|
|
|
|
if gMgSvc.ExpPolicy.Loaded then
|
|
gMgSvc.ExpPolicy.BlueExcept := gMgSvc.ExpPolicy.BlueExcept + ';' + O.S['serial'];
|
|
end else begin
|
|
lbMsg.Caption := RS_BtReqReject;
|
|
|
|
mmReason.Lines.Add('');
|
|
mmReason.Lines.Add(O.S['serial']);
|
|
end;
|
|
end;
|
|
8 : // CD/DVD
|
|
begin
|
|
Caption := RS_CdExcept;
|
|
if O.S['result'] = 'true' then
|
|
begin
|
|
lbMsg.Caption := RS_CdReqPass;
|
|
|
|
mmReason.Lines.Add('');
|
|
mmReason.Lines.Add(O.S['serial']);
|
|
|
|
gMgSvc.PrefModel.CdromExcept := gMgSvc.PrefModel.CdromExcept + ';' + O.S['serial'];
|
|
|
|
gMgSvc.SleepPolicy.CdromExcept := gMgSvc.SleepPolicy.CdromExcept + ';' + O.S['serial'];
|
|
|
|
if gMgSvc.VulPolicy.Loaded then
|
|
gMgSvc.VulPolicy.CdromExcept := gMgSvc.VulPolicy.CdromExcept + ';' + O.S['serial'];
|
|
|
|
if gMgSvc.OffPolicy.Loaded then
|
|
gMgSvc.OffPolicy.CdromExcept := gMgSvc.OffPolicy.CdromExcept + ';' + O.S['serial'];
|
|
|
|
if gMgSvc.ExpPolicy.Loaded then
|
|
gMgSvc.ExpPolicy.CdromExcept := gMgSvc.ExpPolicy.CdromExcept + ';' + O.S['serial'];
|
|
end else begin
|
|
lbMsg.Caption := RS_CdReqReject;
|
|
|
|
mmReason.Lines.Add('');
|
|
mmReason.Lines.Add(O.S['serial']);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
Application.ProcessMessages;
|
|
end;
|
|
|
|
procedure TDlgPrintApproveRst.CreateParams(var Params: TCreateParams);
|
|
begin
|
|
Inherited CreateParams(Params);
|
|
Params.ExStyle := WS_EX_APPWINDOW;
|
|
end;
|
|
|
|
procedure TDlgPrintApproveRst.FormClose(Sender: TObject;
|
|
var Action: TCloseAction);
|
|
begin
|
|
Action := TCloseAction.caFree;
|
|
end;
|
|
|
|
procedure TDlgPrintApproveRst.process_WM_SYSCOMMAND(var msg: TWMSysCommand);
|
|
begin
|
|
if msg.Msg = SC_CLOSE then
|
|
begin
|
|
btnOk.Click;
|
|
exit;
|
|
end;
|
|
Inherited;
|
|
end;
|
|
|
|
procedure TDlgPrintApproveRst.btnOkClick(Sender: TObject);
|
|
begin
|
|
Close;
|
|
end;
|
|
|
|
end.
|