diff --git a/interfaces/kits/c/environment/environment.c b/interfaces/kits/c/environment/environment.c index b5d45da05d409cfdcd3c52fd55bae004a772a4d6..c7a6d2e96bf307af17208af7fa08fc9408563c52 100644 --- a/interfaces/kits/c/environment/environment.c +++ b/interfaces/kits/c/environment/environment.c @@ -25,7 +25,7 @@ int OH_Environment_GetUserDownloadDir(char **result) if (result == NULL) { return GetErrorCode(-PARAMETER_ERROR); } - int ret = GetUserDir("ohos.permission.READ_WRITE_DOWNLOAD_DIRECTORY", result); + int ret = GetUserDir("/Download", result); if (ret < 0) { return GetErrorCode(ret); } @@ -37,7 +37,7 @@ int OH_Environment_GetUserDocumentDir(char **result) if (result == NULL) { return GetErrorCode(-PARAMETER_ERROR); } - int ret = GetUserDir("ohos.permission.READ_WRITE_DOCUMENTS_DIRECTORY", result); + int ret = GetUserDir("/Documents", result); if (ret < 0) { return GetErrorCode(ret); } @@ -49,7 +49,7 @@ int OH_Environment_GetUserDesktopDir(char **result) if (result == NULL) { return GetErrorCode(-PARAMETER_ERROR); } - int ret = GetUserDir("ohos.permission.READ_WRITE_DESKTOP_DIRECTORY", result); + int ret = GetUserDir("/Desktop", result); if (ret < 0) { return GetErrorCode(ret); } diff --git a/interfaces/kits/js/src/mod_environment/environment_n_exporter.cpp b/interfaces/kits/js/src/mod_environment/environment_n_exporter.cpp index 0b87e1edc93f1aae75306a2b0154183beb207f5f..1abfbb02c801ac2ed403730327a68d161d806b63 100644 --- a/interfaces/kits/js/src/mod_environment/environment_n_exporter.cpp +++ b/interfaces/kits/js/src/mod_environment/environment_n_exporter.cpp @@ -182,7 +182,9 @@ napi_value GetUserDataDir(napi_env env, napi_callback_info info) napi_value GetUserDownloadDir(napi_env env, napi_callback_info info) { - if (CheckInvalidAccess(READ_WRITE_DOWNLOAD_PERMISSION, env)) { + if (!CheckFileManagerFullMountEnable()) { + HILOGE("Capability not supported"); + NError(E_DEVICENOTSUPPORT).ThrowErr(env); return nullptr; } NFuncArg funcArg(env, info); @@ -202,7 +204,9 @@ napi_value GetUserDownloadDir(napi_env env, napi_callback_info info) napi_value GetUserDesktopDir(napi_env env, napi_callback_info info) { - if (CheckInvalidAccess(READ_WRITE_DESKTOP_PERMISSION, env)) { + if (!CheckFileManagerFullMountEnable()) { + HILOGE("Capability not supported"); + NError(E_DEVICENOTSUPPORT).ThrowErr(env); return nullptr; } NFuncArg funcArg(env, info); @@ -222,7 +226,9 @@ napi_value GetUserDesktopDir(napi_env env, napi_callback_info info) napi_value GetUserDocumentDir(napi_env env, napi_callback_info info) { - if (CheckInvalidAccess(READ_WRITE_DOCUMENTS_PERMISSION, env)) { + if (!CheckFileManagerFullMountEnable()) { + HILOGE("Capability not supported"); + NError(E_DEVICENOTSUPPORT).ThrowErr(env); return nullptr; } NFuncArg funcArg(env, info); diff --git a/interfaces/kits/native/environment/environment_native.cpp b/interfaces/kits/native/environment/environment_native.cpp index 0869c6e3ecbe4d1afc0b3267c2e8073c3db4303e..80040cc828d2a34c318c3ef2f971eb35748bfd3d 100644 --- a/interfaces/kits/native/environment/environment_native.cpp +++ b/interfaces/kits/native/environment/environment_native.cpp @@ -37,7 +37,6 @@ const std::string DESKTOP_PATH = "/Desktop"; const std::string DOCUMENTS_PATH = "/Documents"; const std::string DEFAULT_USERNAME = "currentUser"; const std::string FILE_MANAGER_FULL_MOUNT_ENABLE_PARAMETER = "const.filemanager.full_mount.enable"; -const int PERMISSION_ERROR = 201; const int DEVICE_NOT_SUPPORTED = 801; static bool CheckCallingPermission(const std::string &permission) @@ -63,41 +62,21 @@ static bool CheckFileManagerFullMountEnable() int retSystem = GetParameter(FILE_MANAGER_FULL_MOUNT_ENABLE_PARAMETER.c_str(), "false", value, sizeof(value)); return (retSystem > 0) && (!std::strcmp(value, "true")); } +} -static int CheckInvalidAccess(const std::string &permission) +int GetUserDir(char *path, char **result) { if (!CheckFileManagerFullMountEnable()) { HILOGD("Failed to enable the parameter: %{public}s", FILE_MANAGER_FULL_MOUNT_ENABLE_PARAMETER.c_str()); return -DEVICE_NOT_SUPPORTED; } - if (!CheckCallingPermission(permission)) { - HILOGD("Failed to own the permission: %{public}s", permission.c_str()); - return -PERMISSION_ERROR; - } - return 0; -} -} - -int GetUserDir(char *permission, char **result) -{ - std::string perm(permission); - int ret = CheckInvalidAccess(perm); - if (ret != 0) { - return ret; - } - std::string path = ""; - if (perm == READ_WRITE_DESKTOP_PERMISSION) { - path = GetPublicPath(DESKTOP_PATH); - } else if (perm == READ_WRITE_DOCUMENTS_PERMISSION) { - path = GetPublicPath(DOCUMENTS_PATH); - } else if (perm == READ_WRITE_DOWNLOAD_PERMISSION) { - path = GetPublicPath(DOWNLOAD_PATH); - } - *result = (char *) malloc((path.length() + 1) * sizeof(char)); + std::string dirPath = ""; + dirPath = GetPublicPath(path); + *result = (char *) malloc((dirPath.length() + 1) * sizeof(char)); if (*result == nullptr) { return -ENOMEM; } - ret = strcpy_s(*result, (path.length() + 1) * sizeof(char), path.c_str()); + int ret = strcpy_s(*result, (dirPath.length() + 1) * sizeof(char), dirPath.c_str()); if (ret != 0) { HILOGE("Failed to copy memory"); return -ENOMEM; diff --git a/interfaces/kits/native/environment/environment_native.h b/interfaces/kits/native/environment/environment_native.h index ef18e5f07188057cb75f94bf41b4e6c3b1ae339f..9caf9bdc7e3bd2f26eedc4fd0122e0e415f18e85 100644 --- a/interfaces/kits/native/environment/environment_native.h +++ b/interfaces/kits/native/environment/environment_native.h @@ -20,7 +20,7 @@ extern "C" { #endif /* End of #ifdef __cplusplus */ -int GetUserDir(char *permission, char **result); +int GetUserDir(char *path, char **result); #ifdef __cplusplus }