From cf80abff5cdd1e92b43e907b2388d16ecda3839a Mon Sep 17 00:00:00 2001 From: Tomasz Marciniak Date: Wed, 4 Nov 2015 13:29:47 +0100 Subject: [PATCH] Revert "[Archive] Privilege checks moved to JS." This reverts commit 51afbb3ea724b67f8bd346ac8b685985d838f048. [Verification] Code compiles. TCT pass rate 100% Change-Id: I504cffc20504b52dbd01cca1a67913cea1ca936d Signed-off-by: Tomasz Marciniak --- src/archive/archive_api.js | 12 ------------ src/archive/archive_instance.cc | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/archive/archive_api.js b/src/archive/archive_api.js index f3576ceb..d53ebce8 100755 --- a/src/archive/archive_api.js +++ b/src/archive/archive_api.js @@ -172,8 +172,6 @@ function ArchiveFileEntry(data, priv) { * Extracts ArchiveFileEntry to the given location. */ this.extract = function () { - xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.FILESYSTEM_WRITE); - var args = validator_.validateArgs(arguments, [ { name: "destinationDirectory", type: types_.FILE_REFERENCE }, { name: "onsuccess", type: types_.FUNCTION, optional: true, nullable: true }, @@ -261,8 +259,6 @@ function ArchiveFile(data) { * Adds a new member file to ArchiveFile. */ this.add = function () { - xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.FILESYSTEM_WRITE); - var args = validator_.validateArgs(arguments, [ { name: "sourceFile", type: types_.FILE_REFERENCE }, { name: "onsuccess", type: types_.FUNCTION, optional: true, nullable: true }, @@ -327,8 +323,6 @@ function ArchiveFile(data) { * Extracts every file from this ArchiveFile to a given directory. */ this.extractAll = function () { - xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.FILESYSTEM_WRITE); - var args = validator_.validateArgs(arguments, [ { name: "destinationDirectory", type: types_.FILE_REFERENCE }, { name: "onsuccess", type: types_.FUNCTION, optional: true, nullable: true }, @@ -384,8 +378,6 @@ function ArchiveFile(data) { * Retrieves information about the member files in ArchiveFile. */ this.getEntries = function () { - xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.FILESYSTEM_READ); - var args = validator_.validateArgs(arguments, [ { name: "onsuccess", type: types_.FUNCTION }, { name: "onerror", type: types_.FUNCTION, optional: true, nullable: true } @@ -424,8 +416,6 @@ function ArchiveFile(data) { * Retrieves information about ArchiveFileEntry with the specified name in ArchiveFile. */ this.getEntryByName = function () { - xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.FILESYSTEM_READ); - var args = validator_.validateArgs(arguments, [ { name: "name", type: types_.STRING }, { name: "onsuccess", type: types_.FUNCTION }, @@ -483,8 +473,6 @@ var ArchiveManager = function () { * Opens the archive file. After this operation, it is possible to add or get files to and from the archive. */ ArchiveManager.prototype.open = function () { - xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.FILESYSTEM_WRITE); - var args = validator_.validateArgs(arguments, [ { name: "file", type: types_.FILE_REFERENCE }, { name: "mode", type: types_.ENUM, values: ["r", "rw", "w", "a"] }, diff --git a/src/archive/archive_instance.cc b/src/archive/archive_instance.cc index 42ed0266..9fb3f01c 100755 --- a/src/archive/archive_instance.cc +++ b/src/archive/archive_instance.cc @@ -25,6 +25,7 @@ #include "common/picojson.h" #include "common/logger.h" #include "common/virtual_fs.h" +#include "common/tools.h" #include "archive_callback_data.h" #include "archive_manager.h" #include "archive_utils.h" @@ -36,6 +37,8 @@ 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"; const std::string kArchiveFileEntryOptDest = "destination"; const std::string kArchiveFileEntryOptStrip = "stripSourceDirectory"; @@ -103,6 +106,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); @@ -264,6 +269,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); @@ -351,6 +358,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); @@ -413,6 +422,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); @@ -457,6 +468,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); @@ -526,6 +539,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