Revert "[Archive] Privilege checks moved to JS."
authorTomasz Marciniak <t.marciniak@samsung.com>
Wed, 4 Nov 2015 12:29:47 +0000 (13:29 +0100)
committerTomasz Marciniak <t.marciniak@samsung.com>
Thu, 3 Dec 2015 07:20:31 +0000 (08:20 +0100)
This reverts commit 51afbb3ea724b67f8bd346ac8b685985d838f048.

[Verification] Code compiles. TCT pass rate 100%

Change-Id: I504cffc20504b52dbd01cca1a67913cea1ca936d
Signed-off-by: Tomasz Marciniak <t.marciniak@samsung.com>
src/archive/archive_api.js
src/archive/archive_instance.cc

index f3576ceb1d045481f8392389af746efce446b408..d53ebce867f893c5fd10e93eec532f9a71c715a6 100755 (executable)
@@ -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"] },
index 42ed0266ad49535f28979da741ed9f7960bbc9ae..9fb3f01cbd95bc4469e34346150f74de1895aee5 100755 (executable)
@@ -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::object>();
     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::object>();
     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::object>();
     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::object>();
     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::object>();
     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::object>();
     picojson::value v_dest_dir = data.at(PARAM_DESTINATION_DIR);
     picojson::value v_strip_name = data.at(PARAM_STRIP_NAME);