mirror of
https://gitee.com/openharmony/print_print_fwk
synced 2024-11-24 01:19:56 +00:00
commit
a10a61e728
@ -33,6 +33,7 @@
|
||||
"core_service",
|
||||
"distributed_notification_service",
|
||||
"drivers_interface_ril",
|
||||
"enterprise_device_management",
|
||||
"eventhandler",
|
||||
"hisysevent",
|
||||
"hitrace",
|
||||
|
@ -8,7 +8,8 @@
|
||||
"secon" : "u:r:print_service:s0",
|
||||
"permission" : [
|
||||
"ohos.permission.securityguard.REPORT_SECURITY_INFO",
|
||||
"ohos.permission.MANAGE_PRINT_JOB"
|
||||
"ohos.permission.MANAGE_PRINT_JOB",
|
||||
"ohos.permission.ENTERPRISE_RESTRICT_POLICY"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
@ -60,6 +60,7 @@ ohos_shared_library("print_service") {
|
||||
"core_service:tel_core_service_api",
|
||||
"distributed_notification_service:ans_innerkits",
|
||||
"drivers_interface_ril:hril_innerkits",
|
||||
"enterprise_device_management:edmservice_kits",
|
||||
"eventhandler:libeventhandler",
|
||||
"hilog:libhilog",
|
||||
"hisysevent:libhisysevent",
|
||||
|
@ -95,6 +95,7 @@ private:
|
||||
void ReportHisysEvent(const std::shared_ptr<PrintJob> &jobInfo, const std::string &printerId, uint32_t subState);
|
||||
void ReportCompletedPrint(const std::string & printerId);
|
||||
void CheckJobQueueBlocked(const PrintJob &jobInfo);
|
||||
bool CheckIsPrinterDisabled();
|
||||
|
||||
private:
|
||||
PrintSecurityGuardManager securityGuardManager_;
|
||||
|
@ -42,6 +42,7 @@
|
||||
#include "print_security_guard_manager.h"
|
||||
#include "hisys_event_util.h"
|
||||
#include "nlohmann/json.hpp"
|
||||
#include "restrictions_proxy.h"
|
||||
|
||||
namespace OHOS::Print {
|
||||
using namespace std;
|
||||
@ -526,7 +527,11 @@ int32_t PrintServiceAbility::StartPrintJob(const PrintJob &jobInfo)
|
||||
auto printerId = jobInfo.GetPrinterId();
|
||||
auto extensionId = PrintUtils::GetExtensionId(printerId);
|
||||
PRINT_HILOGI("StartPrintJob started jobId:%{public}s printerId:%{public}s.", jobId.c_str(), printerId.c_str());
|
||||
|
||||
bool IsPrinterDisabled = CheckIsPrinterDisabled();
|
||||
if (IsPrinterDisabled) {
|
||||
PRINT_HILOGD("prohibit print");
|
||||
return E_PRINT_NO_PERMISSION;
|
||||
}
|
||||
auto jobIt = printJobList_.find(jobId);
|
||||
if (jobIt == printJobList_.end()) {
|
||||
PRINT_HILOGD("invalid job id");
|
||||
@ -1317,4 +1322,18 @@ void PrintServiceAbility::CheckJobQueueBlocked(const PrintJob &jobInfo)
|
||||
}
|
||||
PRINT_HILOGD("CheckJobQueueBlocked end,isJobQueueBlocked_=%{public}s", isJobQueueBlocked_ ? "true" : "false");
|
||||
}
|
||||
|
||||
bool PrintServiceAbility::CheckIsPrinterDisabled()
|
||||
{
|
||||
auto proxy = OHOS::EDM::RestrictionsProxy::GetRestrictionsProxy();
|
||||
if (proxy != nullptr) {
|
||||
bool isDisabled = false;
|
||||
proxy->IsPrinterDisabled(nullptr, isDisabled);
|
||||
PRINT_HILOGD("PrintServiceAbility::CheckIsPrinterDisabled isDisabled %{public}d", isDisabled);
|
||||
if (isDisabled) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
} // namespace OHOS::Print
|
||||
|
Loading…
Reference in New Issue
Block a user