Revert "[DataControl] Privilege checks moved to JS."
authorPiotr Kosko <p.kosko@samsung.com>
Wed, 4 Nov 2015 13:04:47 +0000 (14:04 +0100)
committerTomasz Marciniak <t.marciniak@samsung.com>
Wed, 2 Dec 2015 11:59:27 +0000 (12:59 +0100)
This reverts commit 69b5210ff5bbc6a303e27729e08a14c45d96f0db.
This also applies changes from commit f128cf95a3fc1e639f63214e21474735a13adc77

[Verification] TCT passrate is 100%

Change-Id: Ie45c83810e987c395e269499a213fc044ffd18e0
Signed-off-by: Piotr Kosko <p.kosko@samsung.com>
src/datacontrol/datacontrol_api.js
src/datacontrol/datacontrol_instance.cc

index daf78d16fb67e70cbea8cd99e3f14c6d3d0b1ef6..d30d0f55a49ac4f615ed14585d2a207b12a8fa35 100755 (executable)
@@ -54,7 +54,7 @@ function callNative(cmd, args) {
   } else if (result['status'] == 'error') {
     var err = result['error'];
     if (err) {
-      throw new WebAPIException(err.name, err.message);
+      throw new WebAPIException(err);
     }
     return false;
   }
@@ -84,10 +84,10 @@ function DataControlManager() {
   // constructor of DataControlManager
 }
 
+var privUtils_ = xwalk.utils;
 
-DataControlManager.prototype.getDataControlConsumer = function(providerId, dataId, type) {
-  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.DATACONTROL_CONSUMER);
-
+var getDataControlConsumer = function(providerId, dataId, type) {
+  privUtils_.checkPrivilegeAccess(privUtils_.privilege.DATACONTROL_CONSUMER);
   var args = validator_.validateArgs(arguments, [
     {'name': 'providerId', 'type': types_.STRING},
     {'name': 'dataId', 'type': types_.STRING},
@@ -100,14 +100,19 @@ DataControlManager.prototype.getDataControlConsumer = function(providerId, dataI
   } else if (type === 'MAP') {
     returnObject = new MappedDataControlConsumer();
   }
-  SetReadOnlyProperty(returnObject, 'type', type); // read only property
-  SetReadOnlyProperty(returnObject, 'providerId', providerId); // read only property
-  SetReadOnlyProperty(returnObject, 'dataId', dataId); // read only property
+  SetReadOnlyProperty(returnObject, 'type', args.type); // read only property
+  SetReadOnlyProperty(returnObject, 'providerId', args.providerId); // read only property
+  SetReadOnlyProperty(returnObject, 'dataId', args.dataId); // read only property
 
   return returnObject;
 };
 
 
+DataControlManager.prototype.getDataControlConsumer = function(providerId, dataId, type) {
+  return getDataControlConsumer.apply(null, arguments);
+};
+
+
 function DataControlConsumerObject() {
   // constructor of DataControlConsumerObject
 }
@@ -122,8 +127,6 @@ SQLDataControlConsumer.prototype = new DataControlConsumerObject();
 SQLDataControlConsumer.prototype.constructor = SQLDataControlConsumer;
 
 SQLDataControlConsumer.prototype.insert = function(reqId, insertionData) {
-  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.DATACONTROL_CONSUMER);
-
   var args = validator_.validateArgs(arguments, [
     {'name': 'reqId', 'type': types_.LONG},
     {'name': 'insertionData', 'type': types_.DICTIONARY},
@@ -159,8 +162,6 @@ SQLDataControlConsumer.prototype.insert = function(reqId, insertionData) {
 };
 
 SQLDataControlConsumer.prototype.update = function(reqId, updateData, where) {
-  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.DATACONTROL_CONSUMER);
-
   var args = validator_.validateArgs(arguments, [
     {'name': 'reqId', 'type': types_.LONG},
     {'name': 'updateData', 'type': types_.DICTIONARY},
@@ -199,8 +200,6 @@ SQLDataControlConsumer.prototype.update = function(reqId, updateData, where) {
 };
 
 SQLDataControlConsumer.prototype.remove = function(reqId, where) {
-  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.DATACONTROL_CONSUMER);
-
   var args = validator_.validateArgs(arguments, [
     {'name': 'reqId', 'type': types_.LONG},
     {'name': 'where', 'type': types_.STRING},
@@ -237,8 +236,6 @@ SQLDataControlConsumer.prototype.remove = function(reqId, where) {
 };
 
 SQLDataControlConsumer.prototype.select = function(reqId, columns, where, successCallback) {
-  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.DATACONTROL_CONSUMER);
-
   var args = validator_.validateArgs(arguments, [
     {'name': 'reqId', 'type': types_.LONG},
     {'name': 'columns', 'type': types_.ARRAY},
@@ -292,8 +289,6 @@ MappedDataControlConsumer.prototype = new DataControlConsumerObject();
 MappedDataControlConsumer.prototype.constructor = MappedDataControlConsumer;
 
 MappedDataControlConsumer.prototype.addValue = function(reqId, key, value) {
-  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.DATACONTROL_CONSUMER);
-
   var args = validator_.validateArgs(arguments, [
     {'name': 'reqId', 'type': types_.LONG},
     {'name': 'key', 'type': types_.STRING},
@@ -332,8 +327,6 @@ MappedDataControlConsumer.prototype.addValue = function(reqId, key, value) {
 };
 
 MappedDataControlConsumer.prototype.removeValue = function(reqId, key, value, successCallback) {
-  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.DATACONTROL_CONSUMER);
-
   var args = validator_.validateArgs(arguments, [
     {'name': 'reqId', 'type': types_.LONG},
     {'name': 'key', 'type': types_.STRING},
@@ -370,8 +363,6 @@ MappedDataControlConsumer.prototype.removeValue = function(reqId, key, value, su
 };
 
 MappedDataControlConsumer.prototype.getValue = function(reqId, key, successCallback) {
-  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.DATACONTROL_CONSUMER);
-
   var args = validator_.validateArgs(arguments, [
     {'name': 'reqId', 'type': types_.LONG},
     {'name': 'key', 'type': types_.STRING},
@@ -406,8 +397,6 @@ MappedDataControlConsumer.prototype.getValue = function(reqId, key, successCallb
 
 MappedDataControlConsumer.prototype.updateValue = function(
         reqId, key, oldValue, newValue, successCallback) {
-  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.DATACONTROL_CONSUMER);
-
   var args = validator_.validateArgs(arguments, [
     {'name': 'reqId', 'type': types_.LONG},
     {'name': 'key', 'type': types_.STRING},
index b0e34cafc409cc4e276f0faa37f1921f4c34196d..ef7889dc8c6e498f3f96bd3d2ad9bd0eda4b42d6 100755 (executable)
@@ -27,6 +27,7 @@
 
 #include "common/picojson.h"
 #include "common/logger.h"
+#include "common/tools.h"
 #include "common/platform_exception.h"
 
 #include "common/scope_exit.h"
 namespace extension {
 namespace datacontrol {
 
+namespace {
+// The privileges that required in Datacontrol API
+const std::string kPrivilegeDatacontrol = "http://tizen.org/privilege/datacontrol.consumer";
+
+}  // namespace
+
 using common::InvalidValuesException;
 using common::TypeMismatchException;
 using common::IOException;
@@ -501,12 +508,15 @@ int DatacontrolInstance::RunSQLDataControlJob(const std::string& providerId,
 void DatacontrolInstance::DataControlManagerGetdatacontrolconsumer(
     const picojson::value& args, picojson::object& out) {
   LoggerD("Enter");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeDatacontrol, &out);
+
   CHECK_EXIST(args, "providerId", out)
   CHECK_EXIST(args, "dataId", out)
 }
 void DatacontrolInstance::SQLDataControlConsumerInsert(
     const picojson::value& args, picojson::object& out) {
   LoggerD("Enter");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeDatacontrol, &out);
   CHECK_EXIST(args, "callbackId", out)
   CHECK_EXIST(args, "reqId", out)
   CHECK_EXIST(args, "providerId", out)
@@ -584,6 +594,7 @@ void DatacontrolInstance::SQLDataControlConsumerInsert(
 void DatacontrolInstance::SQLDataControlConsumerUpdate(
     const picojson::value& args, picojson::object& out) {
   LoggerD("Enter");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeDatacontrol, &out);
   CHECK_EXIST(args, "callbackId", out)
   CHECK_EXIST(args, "reqId", out)
   CHECK_EXIST(args, "where", out)
@@ -667,6 +678,7 @@ void DatacontrolInstance::SQLDataControlConsumerUpdate(
 void DatacontrolInstance::SQLDataControlConsumerRemove(
     const picojson::value& args, picojson::object& out) {
   LoggerD("Enter");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeDatacontrol, &out);
   CHECK_EXIST(args, "callbackId", out)
   CHECK_EXIST(args, "reqId", out)
   CHECK_EXIST(args, "where", out)
@@ -705,6 +717,7 @@ void DatacontrolInstance::SQLDataControlConsumerRemove(
 void DatacontrolInstance::SQLDataControlConsumerSelect(
     const picojson::value& args, picojson::object& out) {
   LoggerD("Enter");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeDatacontrol, &out);
   CHECK_EXIST(args, "callbackId", out)
   CHECK_EXIST(args, "reqId", out)
   CHECK_EXIST(args, "columns", out)
@@ -773,6 +786,7 @@ void DatacontrolInstance::MappedDataControlConsumerAddvalue(
     const picojson::value& args,
     picojson::object& out) {
   LoggerD("Enter");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeDatacontrol, &out);
   CHECK_EXIST(args, "callbackId", out)
   CHECK_EXIST(args, "reqId", out)
   CHECK_EXIST(args, "key", out)
@@ -816,6 +830,7 @@ void DatacontrolInstance::MappedDataControlConsumerAddvalue(
 void DatacontrolInstance::MappedDataControlConsumerRemovevalue(
     const picojson::value& args, picojson::object& out) {
   LoggerD("Enter");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeDatacontrol, &out);
   CHECK_EXIST(args, "callbackId", out)
   CHECK_EXIST(args, "reqId", out)
   CHECK_EXIST(args, "key", out)
@@ -858,6 +873,7 @@ void DatacontrolInstance::MappedDataControlConsumerRemovevalue(
 void DatacontrolInstance::MappedDataControlConsumerGetvalue(
     const picojson::value& args, picojson::object& out) {
   LoggerD("Enter");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeDatacontrol, &out);
   CHECK_EXIST(args, "callbackId", out)
   CHECK_EXIST(args, "reqId", out)
   CHECK_EXIST(args, "key", out)
@@ -897,6 +913,7 @@ void DatacontrolInstance::MappedDataControlConsumerGetvalue(
 void DatacontrolInstance::MappedDataControlConsumerUpdatevalue(
     const picojson::value& args, picojson::object& out) {
   LoggerD("Enter");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeDatacontrol, &out);
   CHECK_EXIST(args, "callbackId", out)
   CHECK_EXIST(args, "reqId", out)
   CHECK_EXIST(args, "key", out)