From f9cd242c11ba2c4e5a4411ddad628bc6768cb37b Mon Sep 17 00:00:00 2001 From: gongyuechen Date: Wed, 19 Apr 2023 09:51:10 +0000 Subject: [PATCH] errcode update Signed-off-by: gongyuechen --- .../napi/uri_permission/js_uri_perm_mgr.cpp | 15 +++++++++++---- .../ability_business_error.cpp | 6 ++++-- .../include/ability_runtime_error_util.h | 3 ++- .../src/ability_runtime_error_util.cpp | 6 ++++-- .../ability_business_error.h | 7 +++++-- .../src/uri_permission_manager_stub_impl.cpp | 19 ++++++++++--------- 6 files changed, 36 insertions(+), 20 deletions(-) diff --git a/frameworks/js/napi/uri_permission/js_uri_perm_mgr.cpp b/frameworks/js/napi/uri_permission/js_uri_perm_mgr.cpp index 6eb9ab6c84..bde794fe87 100644 --- a/frameworks/js/napi/uri_permission/js_uri_perm_mgr.cpp +++ b/frameworks/js/napi/uri_permission/js_uri_perm_mgr.cpp @@ -31,7 +31,8 @@ namespace OHOS { namespace AbilityRuntime { namespace { constexpr int32_t ERR_OK = 0; -constexpr int32_t ERROR_CODE_URI_PERMISSION_NOT_FOUND = 16000058; +constexpr int32_t ERROR_CODE_INVALID_URI_FLAG = 16000058; +constexpr int32_t ERROR_CODE_INVALID_URI_TYPE = 16000059; constexpr int32_t argCountFour = 4; constexpr int32_t argCountThree = 3; constexpr int32_t argCountTwo = 2; @@ -103,6 +104,12 @@ private: task.ResolveWithNoError(engine, engine.CreateUndefined()); } else if (errCode == AAFwk::CHECK_PERMISSION_FAILED) { task.Reject(engine, CreateNoPermissionError(engine, "ohos.permission.PROXY_AUTHORIZATION_URI")); + } else if (errCode == ERROR_CODE_INVALID_URI_FLAG){ + task.Reject(engine, CreateJsError(engine, ERR_ABILITY_RUNTIME_EXTERNAL_INVALID_URI_FLAG, + "Invalid URI flag.")); + } else if (errCode == ERROR_CODE_INVALID_URI_TYPE){ + task.Reject(engine, CreateJsError(engine, ERR_ABILITY_RUNTIME_EXTERNAL_INVALID_URI_TYPE, + "Only support file URI.")); } else { task.Reject(engine, CreateJsError(engine, ERR_ABILITY_RUNTIME_EXTERNAL_INTERNAL_ERROR, "Internal Error.")); @@ -153,9 +160,9 @@ private: } else if (errCode == AAFwk::CHECK_PERMISSION_FAILED) { task.Reject(engine, CreateNoPermissionError(engine, "Do not have permission ohos.permission.PROXY_AUTHORIZATION_URI")); - } else if (errCode == ERROR_CODE_URI_PERMISSION_NOT_FOUND){ - task.Reject(engine, CreateJsError(engine, ERR_ABILITY_RUNTIME_EXTERNAL_URI_PERMISSION_NOT_FOUND, - "Uri permission to revoke not found.")); + } else if (errCode == ERROR_CODE_INVALID_URI_TYPE){ + task.Reject(engine, CreateJsError(engine, ERR_ABILITY_RUNTIME_EXTERNAL_INVALID_URI_TYPE, + "Only support file URI.")); } else { task.Reject(engine, CreateJsError(engine, ERR_ABILITY_RUNTIME_EXTERNAL_INTERNAL_ERROR, "Internal Error.")); diff --git a/frameworks/native/ability/native/ability_business_error/ability_business_error.cpp b/frameworks/native/ability/native/ability_business_error/ability_business_error.cpp index 665e9d69e2..26776fc385 100755 --- a/frameworks/native/ability/native/ability_business_error/ability_business_error.cpp +++ b/frameworks/native/ability/native/ability_business_error/ability_business_error.cpp @@ -49,7 +49,8 @@ constexpr const char* ERROR_MSG_FREE_INSTALL_TOO_BUSY = constexpr const char* ERROR_MSG_FREE_INSTALL_TIMEOUT = "Installation-free timed out."; constexpr const char* ERROR_MSG_FREE_INSTALL_OTHERS = "Installation-free is not allowed for other applications."; constexpr const char* ERROR_MSG_FREE_INSTALL_CROSS_DEVICE = "Cross-device installation-free is not supported."; -constexpr const char* ERROR_MSG_URI_PERMISSION_NOT_FOUND = "Uri permission not found."; +constexpr const char* ERROR_MSG_INVALID_URI_FLAG = "Invalid URI flag."; +constexpr const char* ERROR_MSG_INVALID_URI_TYPE = "Invalid URI type, only support file Uri."; constexpr const char* ERROR_MSG_INVALID_CALLER = "The caller has been released."; constexpr const char* ERROR_MSG_NO_MISSION_ID = "The specified mission does not exist."; constexpr const char* ERROR_MSG_NO_MISSION_LISTENER = "Input error. The specified mission listener does not exist."; @@ -80,7 +81,8 @@ static std::unordered_map ERR_CODE_MAP = { { AbilityErrorCode::ERROR_CODE_FREE_INSTALL_TIMEOUT, ERROR_MSG_FREE_INSTALL_TIMEOUT }, { AbilityErrorCode::ERROR_CODE_FREE_INSTALL_OTHERS, ERROR_MSG_FREE_INSTALL_OTHERS }, { AbilityErrorCode::ERROR_CODE_FREE_INSTALL_CROSS_DEVICE, ERROR_MSG_FREE_INSTALL_CROSS_DEVICE }, - { AbilityErrorCode::ERROR_CODE_URI_PERMISSION_NOT_FOUND, ERROR_MSG_URI_PERMISSION_NOT_FOUND }, + { AbilityErrorCode::ERROR_CODE_INVALID_URI_FLAG, ERROR_MSG_INVALID_URI_FLAG }, + { AbilityErrorCode::ERROR_CODE_INVALID_URI_TYPE, ERROR_MSG_INVALID_URI_TYPE }, { AbilityErrorCode::ERROR_CODE_INVALID_CALLER, ERROR_MSG_INVALID_CALLER }, { AbilityErrorCode::ERROR_CODE_NO_MISSION_ID, ERROR_MSG_NO_MISSION_ID }, { AbilityErrorCode::ERROR_CODE_NO_MISSION_LISTENER, ERROR_MSG_NO_MISSION_LISTENER }, diff --git a/interfaces/inner_api/error_utils/include/ability_runtime_error_util.h b/interfaces/inner_api/error_utils/include/ability_runtime_error_util.h index 071126fb52..5f7afaee88 100644 --- a/interfaces/inner_api/error_utils/include/ability_runtime_error_util.h +++ b/interfaces/inner_api/error_utils/include/ability_runtime_error_util.h @@ -46,7 +46,8 @@ enum { ERR_ABILITY_RUNTIME_EXTERNAL_FREE_INSTALL_TIMEOUT = 16000055, ERR_ABILITY_RUNTIME_EXTERNAL_CANNOT_FREE_INSTALL_OTHER_ABILITY = 16000056, ERR_ABILITY_RUNTIME_EXTERNAL_NOT_SUPPORT_CROSS_DEVICE_FREE_INSTALL = 16000057, - ERR_ABILITY_RUNTIME_EXTERNAL_URI_PERMISSION_NOT_FOUND = 16000058, + ERR_ABILITY_RUNTIME_EXTERNAL_INVALID_URI_FLAG = 16000058, + ERR_ABILITY_RUNTIME_EXTERNAL_INVALID_URI_TYPE = 16000058, ERR_ABILITY_RUNTIME_EXTERNAL_EXECUTE_SHELL_COMMAND_FAILED = 16000101, ERR_ABILITY_RUNTIME_EXTERNAL_INVALID_WANTAGENT = 16000151, ERR_ABILITY_RUNTIME_EXTERNAL_WANTAGENT_NOT_FOUND = 16000152, diff --git a/interfaces/inner_api/error_utils/src/ability_runtime_error_util.cpp b/interfaces/inner_api/error_utils/src/ability_runtime_error_util.cpp index 418d9806e6..aad47a0585 100644 --- a/interfaces/inner_api/error_utils/src/ability_runtime_error_util.cpp +++ b/interfaces/inner_api/error_utils/src/ability_runtime_error_util.cpp @@ -129,8 +129,10 @@ const std::map ERROR_MSG_MAP = { "The specified SystemCapability name was not found." }, { ERR_ABILITY_RUNTIME_EXTERNAL_START_ABILITY_WAITTING, "The previous ability is starting, wait start later." }, - { ERR_ABILITY_RUNTIME_EXTERNAL_URI_PERMISSION_NOT_FOUND, - "Uri permission to revoke not found." } + { ERR_ABILITY_RUNTIME_EXTERNAL_INVALID_URI_FLAG, + "Invalid URI flag." }, + { ERR_ABILITY_RUNTIME_EXTERNAL_INVALID_URI_TYPE, + "Invalid URI type, only support file uri" } }; } diff --git a/interfaces/kits/native/ability/native/ability_business_error/ability_business_error.h b/interfaces/kits/native/ability/native/ability_business_error/ability_business_error.h index 8813cd47d2..3180c74d48 100755 --- a/interfaces/kits/native/ability/native/ability_business_error/ability_business_error.h +++ b/interfaces/kits/native/ability/native/ability_business_error/ability_business_error.h @@ -96,8 +96,11 @@ enum class AbilityErrorCode { // Cross-device installation-free is not supported. ERROR_CODE_FREE_INSTALL_CROSS_DEVICE = 16000057, - // Uri permission not found. - ERROR_CODE_URI_PERMISSION_NOT_FOUND = 16000058, + // Uri flag invalid. + ERROR_CODE_INVALID_URI_FLAG = 16000058, + + // Uri type invalid, only support file uri currently. + ERROR_CODE_INVALID_URI_TYPE = 16000059, // invalid caller. ERROR_CODE_INVALID_CALLER = 16200001, diff --git a/services/uripermmgr/src/uri_permission_manager_stub_impl.cpp b/services/uripermmgr/src/uri_permission_manager_stub_impl.cpp index dda0f42332..0b030b8342 100644 --- a/services/uripermmgr/src/uri_permission_manager_stub_impl.cpp +++ b/services/uripermmgr/src/uri_permission_manager_stub_impl.cpp @@ -33,7 +33,8 @@ namespace OHOS { namespace AAFwk { const int32_t DEFAULT_USER_ID = 0; const int32_t ERR_OK = 0; -const int32_t ERROR_CODE_URI_PERMISSION_NOT_FOUND = 16000058; +constexpr int32_t ERROR_CODE_INVALID_URI_FLAG = 16000058; +constexpr int32_t ERROR_CODE_INVALID_URI_TYPE = 16000059; using TokenId = Security::AccessToken::AccessTokenID; int UriPermissionManagerStubImpl::GrantUriPermission(const Uri &uri, unsigned int flag, @@ -41,7 +42,7 @@ int UriPermissionManagerStubImpl::GrantUriPermission(const Uri &uri, unsigned in { if ((flag & (Want::FLAG_AUTH_READ_URI_PERMISSION | Want::FLAG_AUTH_WRITE_URI_PERMISSION)) == 0) { HILOG_WARN("UriPermissionManagerStubImpl::GrantUriPermission: The param flag is invalid."); - return INNER_ERR; + return ERROR_CODE_INVALID_URI_FLAG; } Uri uri_inner = uri; auto&& authority = uri_inner.GetAuthority(); @@ -63,7 +64,7 @@ int UriPermissionManagerStubImpl::GrantUriPermission(const Uri &uri, unsigned in auto&& scheme = uri_inner.GetScheme(); if (scheme != "file") { HILOG_WARN("only support file uri."); - return INNER_ERR; + return ERROR_CODE_INVALID_URI_TYPE; } // auto remove URI permission for clipboard Security::AccessToken::NativeTokenInfo nativeInfo; @@ -161,6 +162,11 @@ int UriPermissionManagerStubImpl::RevokeUriPermissionManually(const Uri &uri, co HILOG_DEBUG("Start to remove uri permission manually."); Uri uri_inner = uri; auto&& authority = uri_inner.GetAuthority(); + auto&& scheme = uri_inner.GetScheme(); + if (scheme != "file") { + HILOG_WARN("only support file uri."); + return ERROR_CODE_INVALID_URI_TYPE; + } Security::AccessToken::AccessTokenID uriTokenId = GetTokenIdByBundleName(authority); Security::AccessToken::AccessTokenID tokenId = GetTokenIdByBundleName(bundleName); auto callerTokenId = IPCSkeleton::GetCallingTokenID(); @@ -179,14 +185,12 @@ int UriPermissionManagerStubImpl::RevokeUriPermissionManually(const Uri &uri, co auto search = uriMap_.find(uriStr); if (search == uriMap_.end()) { HILOG_ERROR("URI does not exist on uri map."); - return ERROR_CODE_URI_PERMISSION_NOT_FOUND; + return ERR_OK; } auto& list = search->second; - bool found = false; for (auto it = list.begin(); it != list.end(); it++) { if (it->targetTokenId == tokenId) { HILOG_INFO("Erase an info form list."); - found = true; auto storageMgrProxy = ConnectStorageManager(); if (storageMgrProxy == nullptr) { HILOG_ERROR("ConnectStorageManager failed"); @@ -205,9 +209,6 @@ int UriPermissionManagerStubImpl::RevokeUriPermissionManually(const Uri &uri, co if (list.size() == 0) { uriMap_.erase(search); } - if (!found) { - return ERROR_CODE_URI_PERMISSION_NOT_FOUND; - } } return ERR_OK; }