From: Szymon Jastrzebski Date: Wed, 17 Jan 2018 14:25:01 +0000 (+0100) Subject: [Filesystem] Synchronously checking access to file X-Git-Tag: submit/tizen/20180427.125243~14^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ec4efda9f0dabdba881d7c3e3e9d51aa50c802fc;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [Filesystem] Synchronously checking access to file [Verification] p.r. is equal to 100% with: 1. commit https://review.tizen.org/gerrit/#/c/166000/ 2. added storage privileges to config.xml file 3. allowed the permission request Change-Id: Ie3ea757a8513b1c33c5fa91ac0107301e7910656 Signed-off-by: Szymon Jastrzebski --- diff --git a/src/filesystem/filesystem_instance.cc b/src/filesystem/filesystem_instance.cc index eaceadc8..839f3063 100644 --- a/src/filesystem/filesystem_instance.cc +++ b/src/filesystem/filesystem_instance.cc @@ -87,8 +87,8 @@ void FilesystemInstance::FileCreateSync(const picojson::value& args, picojson::o ScopeLogger(); CHECK_PRIVILEGE_ACCESS(kPrivilegeFilesystemWrite, &out); CHECK_EXIST(args, "location", out) - const std::string& location = args.get("location").get(); + CHECK_STORAGE_ACCESS(location, &out); auto onSuccess = [&](const FilesystemStat& data) { ScopeLogger("Entered into asynchronous function, onSuccess"); @@ -107,12 +107,15 @@ void FilesystemInstance::FileRename(const picojson::value& args, picojson::objec ScopeLogger(); CHECK_PRIVILEGE_ACCESS(kPrivilegeFilesystemWrite, &out); CHECK_EXIST(args, "callbackId", out) + CHECK_EXIST(args, "oldPath", out) + const std::string& oldPath = args.get("oldPath").get(); + CHECK_STORAGE_ACCESS(oldPath, &out); CHECK_EXIST(args, "newPath", out) + const std::string& newPath = args.get("newPath").get(); + CHECK_STORAGE_ACCESS(newPath, &out); double callback_id = args.get("callbackId").get(); - const std::string& oldPath = args.get("oldPath").get(); - const std::string& newPath = args.get("newPath").get(); auto onSuccess = [this, callback_id](const FilesystemStat& data) { ScopeLogger("Entered into asynchronous function, onSuccess"); @@ -459,11 +462,12 @@ void FilesystemInstance::FileWriteBase64(const picojson::value& args, picojson:: void FilesystemInstance::FileStat(const picojson::value& args, picojson::object& out) { ScopeLogger(); CHECK_PRIVILEGE_ACCESS(kPrivilegeFilesystemRead, &out); - CHECK_EXIST(args, "callbackId", out) CHECK_EXIST(args, "location", out) + const std::string& location = args.get("location").get(); + CHECK_STORAGE_ACCESS(location, &out); + CHECK_EXIST(args, "callbackId", out) double callback_id = args.get("callbackId").get(); - const std::string& location = args.get("location").get(); auto onSuccess = [this, callback_id](const FilesystemStat& data) { ScopeLogger("Entered into asynchronous function, onSuccess"); @@ -492,8 +496,8 @@ void FilesystemInstance::FileStatSync(const picojson::value& args, picojson::obj ScopeLogger(); CHECK_PRIVILEGE_ACCESS(kPrivilegeFilesystemRead, &out); CHECK_EXIST(args, "location", out) - const std::string& location = args.get("location").get(); + CHECK_STORAGE_ACCESS(location, &out); auto onSuccess = [&](const FilesystemStat& data) { ScopeLogger("Entered into asynchronous function, onSuccess"); @@ -620,8 +624,8 @@ void FilesystemInstance::FileSystemManagerMakeDirectorySync(const picojson::valu ScopeLogger(); CHECK_PRIVILEGE_ACCESS(kPrivilegeFilesystemWrite, &out); CHECK_EXIST(args, "location", out) - const std::string& location = args.get("location").get(); + CHECK_STORAGE_ACCESS(location, &out); auto onResult = [&](FilesystemError e) { ScopeLogger("Entered into asynchronous function, onResult"); @@ -677,9 +681,9 @@ void FilesystemInstance::UnlinkFile(const picojson::value& args, picojson::objec ScopeLogger(); CHECK_PRIVILEGE_ACCESS(kPrivilegeFilesystemWrite, &out); CHECK_EXIST(args, "pathToFile", out) - double callback_id = args.get("callbackId").get(); const std::string& pathToFile = args.get("pathToFile").get(); + CHECK_STORAGE_ACCESS(pathToFile, &out); auto onSuccess = [this, callback_id]() { ScopeLogger("Entered into asynchronous function, onSuccess"); @@ -709,9 +713,9 @@ void FilesystemInstance::RemoveDirectory(const picojson::value& args, picojson:: ScopeLogger(); CHECK_PRIVILEGE_ACCESS(kPrivilegeFilesystemWrite, &out); CHECK_EXIST(args, "pathToDelete", out) - double callback_id = args.get("callbackId").get(); const std::string& pathToDelete = args.get("pathToDelete").get(); + CHECK_STORAGE_ACCESS(pathToDelete, &out); auto onSuccess = [this, callback_id]() { ScopeLogger("Entered into asynchronous function, onSuccess"); @@ -741,13 +745,17 @@ void FilesystemInstance::CopyTo(const picojson::value& args, picojson::object& o ScopeLogger(); CHECK_PRIVILEGE_ACCESS(kPrivilegeFilesystemWrite, &out); CHECK_EXIST(args, "callbackId", out) + CHECK_EXIST(args, "originFilePath", out) + const std::string& originPath = args.get("originFilePath").get(); + CHECK_STORAGE_ACCESS(originPath, &out); CHECK_EXIST(args, "destinationFilePath", out) + const std::string& destinationPath = args.get("destinationFilePath").get(); + CHECK_STORAGE_ACCESS(destinationPath, &out); + CHECK_EXIST(args, "overwrite", out) double callback_id = args.get("callbackId").get(); - const std::string& originPath = args.get("originFilePath").get(); - const std::string& destinationPath = args.get("destinationFilePath").get(); const bool& overwrite = args.get("overwrite").get(); auto onSuccess = [this, callback_id]() {