1 /* 2 * Copyright (c) 2023-2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef INTERFACES_KITS_DLP_PERMISSION_NAPI_INCLUDE_NAPI_H 17 #define INTERFACES_KITS_DLP_PERMISSION_NAPI_INCLUDE_NAPI_H 18 19 #include "dlp_permission_callback.h" 20 #include "napi/native_api.h" 21 #include "napi/native_node_api.h" 22 #include "parcel.h" 23 #include "permission_policy.h" 24 25 namespace OHOS { 26 namespace Security { 27 namespace DlpPermission { 28 29 class NapiDlpPermission { 30 public: 31 static napi_value Init(napi_env env, napi_value exports); 32 33 private: 34 static void InitFunction(napi_env env, napi_value exports); 35 36 static napi_value JsConstructor(napi_env env, napi_callback_info cbinfo); 37 static napi_value DlpFile(napi_env env, napi_callback_info cbInfo); 38 static bool IsSystemApp(napi_env env); 39 40 static void GenerateDlpFileExcute(napi_env env, void* data); 41 static void GenerateDlpFileComplete(napi_env env, napi_status status, void* data); 42 static napi_value GenerateDlpFile(napi_env env, napi_callback_info cbInfo); 43 44 static void OpenDlpFileExcute(napi_env env, void* data); 45 static void OpenDlpFileComplete(napi_env env, napi_status status, void* data); 46 static napi_value OpenDlpFile(napi_env env, napi_callback_info cbInfo); 47 48 static void IsDlpFileExcute(napi_env env, void* data); 49 static void IsDlpFileComplete(napi_env env, napi_status status, void* data); 50 static napi_value IsDlpFile(napi_env env, napi_callback_info cbInfo); 51 52 static void AddDlpLinkFileExcute(napi_env env, void* data); 53 static void AddDlpLinkFileComplete(napi_env env, napi_status status, void* data); 54 static napi_value AddDlpLinkFile(napi_env env, napi_callback_info cbInfo); 55 56 static void StopDlpLinkFileExcute(napi_env env, void* data); 57 static void StopDlpLinkFileComplete(napi_env env, napi_status status, void* data); 58 static napi_value StopDlpLinkFile(napi_env env, napi_callback_info cbInfo); 59 60 static void ReplaceDlpLinkFileExcute(napi_env env, void* data); 61 static void ReplaceDlpLinkFileComplete(napi_env env, napi_status status, void* data); 62 static napi_value ReplaceDlpLinkFile(napi_env env, napi_callback_info cbInfo); 63 64 static void RestartDlpLinkFileExcute(napi_env env, void* data); 65 static void RestartDlpLinkFileComplete(napi_env env, napi_status status, void* data); 66 static napi_value RestartDlpLinkFile(napi_env env, napi_callback_info cbInfo); 67 68 static void DeleteDlpLinkFileExcute(napi_env env, void* data); 69 static void DeleteDlpLinkFileComplete(napi_env env, napi_status status, void* data); 70 static napi_value DeleteDlpLinkFile(napi_env env, napi_callback_info cbInfo); 71 72 static void RecoverDlpFileExcute(napi_env env, void* data); 73 static void RecoverDlpFileComplete(napi_env env, napi_status status, void* data); 74 static napi_value RecoverDlpFile(napi_env env, napi_callback_info cbInfo); 75 76 static void CloseDlpFileExcute(napi_env env, void* data); 77 static void CloseDlpFileComplete(napi_env env, napi_status status, void* data); 78 static napi_value CloseDlpFile(napi_env env, napi_callback_info cbInfo); 79 80 static void InstallDlpSandboxExcute(napi_env env, void* data); 81 static void InstallDlpSandboxComplete(napi_env env, napi_status status, void* data); 82 static napi_value InstallDlpSandbox(napi_env env, napi_callback_info cbInfo); 83 84 static void UninstallDlpSandboxExcute(napi_env env, void* data); 85 static void UninstallDlpSandboxComplete(napi_env env, napi_status status, void* data); 86 static napi_value UninstallDlpSandbox(napi_env env, napi_callback_info cbInfo); 87 88 static void GetDLPPermissionInfoExcute(napi_env env, void* data); 89 static void GetDLPPermissionInfoComplete(napi_env env, napi_status status, void* data); 90 static napi_value GetDLPPermissionInfo(napi_env env, napi_callback_info cbInfo); 91 92 static void IsInSandboxExcute(napi_env env, void* data); 93 static void IsInSandboxComplete(napi_env env, napi_status status, void* data); 94 static napi_value IsInSandbox(napi_env env, napi_callback_info cbInfo); 95 96 static napi_value GetDLPSuffix(napi_env env, napi_callback_info cbInfo); 97 98 static napi_value GetOriginalFileName(napi_env env, napi_callback_info cbInfo); 99 100 static void GetDlpSupportFileTypeExcute(napi_env env, void* data); 101 static void GetDlpSupportFileTypeComplete(napi_env env, napi_status status, void* data); 102 static napi_value GetDlpSupportFileType(napi_env env, napi_callback_info cbInfo); 103 104 static napi_value RegisterSandboxChangeCallback(napi_env env, napi_callback_info cbInfo); 105 static napi_value UnregisterSandboxChangeCallback(napi_env env, napi_callback_info cbInfo); 106 107 static napi_value Subscribe(napi_env env, napi_callback_info cbInfo); 108 static napi_value UnSubscribe(napi_env env, napi_callback_info cbInfo); 109 static napi_value SubscribeOpenDlpFile(const napi_env env, const napi_value thisVar, napi_ref &callback); 110 static napi_value UnSubscribeOpenDlpFile(const napi_env env, napi_ref &callback); 111 112 static void GetDlpGatheringPolicyExcute(napi_env env, void* data); 113 static void GetDlpGatheringPolicyComplete(napi_env env, napi_status status, void* data); 114 static napi_value GetDlpGatheringPolicy(napi_env env, napi_callback_info cbInfo); 115 116 static void SetRetentionStateExcute(napi_env env, void* data); 117 static void SetRetentionStateComplete(napi_env env, napi_status status, void* data); 118 static napi_value SetRetentionState(napi_env env, napi_callback_info cbInfo); 119 120 static void CancelRetentionStateExcute(napi_env env, void* data); 121 static void CancelRetentionStateComplete(napi_env env, napi_status status, void* data); 122 static napi_value CancelRetentionState(napi_env env, napi_callback_info cbInfo); 123 124 static void GetRetentionSandboxListExcute(napi_env env, void* data); 125 static void GetRetentionSandboxListComplete(napi_env env, napi_status status, void* data); 126 static napi_value GetRetentionSandboxList(napi_env env, napi_callback_info cbInfo); 127 128 static void GetDLPFileVisitRecordExcute(napi_env env, void* data); 129 static void GetDLPFileVisitRecordComplete(napi_env env, napi_status status, void* data); 130 static napi_value GetDLPFileVisitRecord(napi_env env, napi_callback_info cbInfo); 131 132 static void SetSandboxAppConfigExecute(napi_env env, void* data); 133 static void SetSandboxAppConfigComplete(napi_env env, napi_status status, void* data); 134 static napi_value SetSandboxAppConfig(napi_env env, napi_callback_info cbInfo); 135 136 static void CleanSandboxAppConfigExecute(napi_env env, void* data); 137 static void CleanSandboxAppConfigComplete(napi_env env, napi_status status, void* data); 138 static napi_value CleanSandboxAppConfig(napi_env env, napi_callback_info cbInfo); 139 140 static void GetSandboxAppConfigExecute(napi_env env, void* data); 141 static void GetSandboxAppConfigComplete(napi_env env, napi_status status, void* data); 142 static napi_value GetSandboxAppConfig(napi_env env, napi_callback_info cbInfo); 143 144 static napi_value StartDLPManagerForResult(napi_env env, napi_callback_info cbInfo); 145 146 static napi_value IsDLPFeatureProvided(napi_env env, napi_callback_info cbInfo); 147 static void IsDLPFeatureProvidedExcute(napi_env env, void* data); 148 static void IsDLPFeatureProvidedComplete(napi_env env, napi_status status, void* data); 149 150 static napi_value GenerateDlpFileForEnterprise(napi_env env, napi_callback_info cbInfo); 151 static void GenerateDlpFileForEnterpriseExcute(napi_env env, void* data); 152 static void GenerateDlpFileForEnterpriseComplete(napi_env env, napi_status status, void* data); 153 154 static napi_value DecryptDlpFile(napi_env env, napi_callback_info cbInfo); 155 static void DecryptDlpFileExcute(napi_env env, void* data); 156 static void DecryptDlpFileComplete(napi_env env, napi_status status, void* data); 157 158 static napi_value QueryDlpPolicy(napi_env env, napi_callback_info cbInfo); 159 static void QueryDlpPolicyExcute(napi_env env, void* data); 160 static void QueryDlpPolicyComplete(napi_env env, napi_status status, void* data); 161 }; 162 } // namespace DlpPermission 163 } // namespace Security 164 } // namespace OHOS 165 /* 166 * function for module exports 167 */ 168 static napi_value Init(napi_env env, napi_value exports); 169 170 #endif /* INTERFACES_KITS_DLP_PERMISSION_NAPI_INCLUDE_NAPI_H */ 171