From ec8e65c2ada20c82be4b59fd9d10aedcc50fbf45 Mon Sep 17 00:00:00 2001
From: Pawel Andruszkiewicz
Date: Wed, 18 Mar 2015 16:00:55 +0100
Subject: [PATCH] [Archive] Added privilege checks.
Change-Id: I8f0896718cc232e4d709774d801330c058096b0b
---
src/archive/archive_instance.cc | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/src/archive/archive_instance.cc b/src/archive/archive_instance.cc
index 529da62b..fb9874c6 100644
--- a/src/archive/archive_instance.cc
+++ b/src/archive/archive_instance.cc
@@ -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::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::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::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::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::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::value v_dest_dir = data.at(PARAM_DESTINATION_DIR);
picojson::value v_strip_name = data.at(PARAM_STRIP_NAME);
--
2.34.1