[Archive] Added privilege checks.
authorPawel Andruszkiewicz <p.andruszkie@samsung.com>
Wed, 18 Mar 2015 15:00:55 +0000 (16:00 +0100)
committerPawel Andruszkiewicz <p.andruszkie@samsung.com>
Wed, 25 Mar 2015 13:51:38 +0000 (22:51 +0900)
Change-Id: I8f0896718cc232e4d709774d801330c058096b0b

src/archive/archive_instance.cc

index 529da62bde3cec39c3edd5a9c956ab43c8160f66..fb9874c6d93066c60ea090410213a1fdde2a02d8 100644 (file)
@@ -22,6 +22,11 @@ namespace archive {
 
 using namespace common;
 
+namespace {
+const std::string kPrivilegeFilesystemRead  = "http://tizen.org/privilege/filesystem.read";
+const std::string kPrivilegeFilesystemWrite  = "http://tizen.org/privilege/filesystem.write";
+} // namespace
+
 ArchiveInstance& ArchiveInstance::getInstance()
 {
     static ArchiveInstance instance;
@@ -79,6 +84,8 @@ void ArchiveInstance::Open(const picojson::value& args, picojson::object& out) {
     LoggerD("Entered");
     LoggerD("%s", args.serialize().c_str());
 
+    CHECK_PRIVILEGE_ACCESS(kPrivilegeFilesystemWrite, &out);
+
     picojson::object data = args.get(JSON_DATA).get<picojson::object>();
     picojson::value v_file = data.at(PARAM_FILE);
     picojson::value v_mode = data.at(PARAM_MODE);
@@ -221,6 +228,8 @@ void ArchiveInstance::Add(const picojson::value& args, picojson::object& out)
     LoggerD("Entered");
     LoggerD("%s", args.serialize().c_str());
 
+    CHECK_PRIVILEGE_ACCESS(kPrivilegeFilesystemWrite, &out);
+
     picojson::object data = args.get(JSON_DATA).get<picojson::object>();
     picojson::value v_source = data.at(PARAM_SOURCE_FILE);
     //picojson::value v_options = data.at(PARAM_OPTIONS);
@@ -284,6 +293,8 @@ void ArchiveInstance::ExtractAll(const picojson::value& args, picojson::object&
     LoggerD("Entered");
     LoggerD("%s", args.serialize().c_str());
 
+    CHECK_PRIVILEGE_ACCESS(kPrivilegeFilesystemWrite, &out);
+
     picojson::object data = args.get(JSON_DATA).get<picojson::object>();
     picojson::value v_dest_dir = data.at(PARAM_DESTINATION_DIR);
     picojson::value v_overwrite = data.at(PARAM_OVERWRITE);
@@ -346,6 +357,8 @@ void ArchiveInstance::GetEntries(const picojson::value& args, picojson::object&
     LoggerD("Entered");
     LoggerD("%s", args.serialize().c_str());
 
+    CHECK_PRIVILEGE_ACCESS(kPrivilegeFilesystemRead, &out);
+
     picojson::object data = args.get(JSON_DATA).get<picojson::object>();
     picojson::value v_op_id = data.at(PARAM_OPERATION_ID);
     picojson::value v_handle = data.at(ARCHIVE_FILE_HANDLE);
@@ -390,6 +403,8 @@ void ArchiveInstance::GetEntryByName(const picojson::value& args, picojson::obje
     LoggerD("Entered");
     LoggerD("%s", args.serialize().c_str());
 
+    CHECK_PRIVILEGE_ACCESS(kPrivilegeFilesystemRead, &out);
+
     picojson::object data = args.get(JSON_DATA).get<picojson::object>();
     picojson::value v_op_id = data.at(PARAM_OPERATION_ID);
     picojson::value v_handle = data.at(ARCHIVE_FILE_HANDLE);
@@ -459,6 +474,8 @@ void ArchiveInstance::Extract(const picojson::value& args, picojson::object& out
     LoggerD("Entered");
     LoggerD("%s", args.serialize().c_str());
 
+    CHECK_PRIVILEGE_ACCESS(kPrivilegeFilesystemWrite, &out);
+
     picojson::object data = args.get(JSON_DATA).get<picojson::object>();
     picojson::value v_dest_dir = data.at(PARAM_DESTINATION_DIR);
     picojson::value v_strip_name = data.at(PARAM_STRIP_NAME);