[Filesystem] Synchronously checking access to file 37/167437/8
authorSzymon Jastrzebski <s.jastrzebsk@partner.samsung.com>
Wed, 17 Jan 2018 14:25:01 +0000 (15:25 +0100)
committerPawel Kaczmarczyk <p.kaczmarczy@samsung.com>
Mon, 9 Apr 2018 06:31:34 +0000 (08:31 +0200)
[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 <s.jastrzebsk@partner.samsung.com>
src/filesystem/filesystem_instance.cc

index eaceadc80067bb40bf429a0ea9d86881443a326a..839f3063de2b09f915d66eec96c91ee5f3ac677c 100644 (file)
@@ -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<std::string>();
+  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<std::string>();
+  CHECK_STORAGE_ACCESS(oldPath, &out);
   CHECK_EXIST(args, "newPath", out)
+  const std::string& newPath = args.get("newPath").get<std::string>();
+  CHECK_STORAGE_ACCESS(newPath, &out);
 
   double callback_id = args.get("callbackId").get<double>();
-  const std::string& oldPath = args.get("oldPath").get<std::string>();
-  const std::string& newPath = args.get("newPath").get<std::string>();
 
   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<std::string>();
+  CHECK_STORAGE_ACCESS(location, &out);
 
+  CHECK_EXIST(args, "callbackId", out)
   double callback_id = args.get("callbackId").get<double>();
-  const std::string& location = args.get("location").get<std::string>();
 
   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<std::string>();
+  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<std::string>();
+  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<double>();
   const std::string& pathToFile = args.get("pathToFile").get<std::string>();
+  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<double>();
   const std::string& pathToDelete = args.get("pathToDelete").get<std::string>();
+  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<std::string>();
+  CHECK_STORAGE_ACCESS(originPath, &out);
   CHECK_EXIST(args, "destinationFilePath", out)
+  const std::string& destinationPath = args.get("destinationFilePath").get<std::string>();
+  CHECK_STORAGE_ACCESS(destinationPath, &out);
+
   CHECK_EXIST(args, "overwrite", out)
 
   double callback_id = args.get("callbackId").get<double>();
-  const std::string& originPath = args.get("originFilePath").get<std::string>();
-  const std::string& destinationPath = args.get("destinationFilePath").get<std::string>();
   const bool& overwrite = args.get("overwrite").get<bool>();
 
   auto onSuccess = [this, callback_id]() {