[DataControl] Privilege checks moved to JS.
authorPawel Andruszkiewicz <p.andruszkie@samsung.com>
Thu, 30 Apr 2015 12:52:30 +0000 (14:52 +0200)
committerPawel Andruszkiewicz <p.andruszkie@samsung.com>
Mon, 4 May 2015 08:06:28 +0000 (17:06 +0900)
Privileges need to be checked before validation of arguments.

Change-Id: I2539852ecddeb45d3c203de4a1dfbd1beb9d721a
Signed-off-by: Pawel Andruszkiewicz <p.andruszkie@samsung.com>
src/datacontrol/datacontrol_api.js
src/datacontrol/datacontrol_instance.cc

index 0294d42..a55e8ce 100644 (file)
@@ -73,6 +73,8 @@ function DataControlManager() {
 
 
 DataControlManager.prototype.getDataControlConsumer = function(providerId, dataId, type) {
+  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.DATACONTROL_CONSUMER);
+
   var args = validator_.validateArgs(arguments, [
     {'name': 'providerId', 'type': types_.STRING},
     {'name': 'dataId', 'type': types_.STRING},
@@ -107,6 +109,8 @@ 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},
@@ -142,6 +146,8 @@ 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},
@@ -180,6 +186,8 @@ 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},
@@ -216,6 +224,8 @@ 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},
@@ -269,6 +279,8 @@ 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},
@@ -307,6 +319,8 @@ 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},
@@ -343,6 +357,8 @@ 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},
@@ -377,6 +393,8 @@ 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 723a5f8..859063b 100644 (file)
 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;
@@ -484,8 +478,6 @@ int DatacontrolInstance::RunSQLDataControlJob(const std::string& providerId,
 
 void DatacontrolInstance::DataControlManagerGetdatacontrolconsumer(
     const picojson::value& args, picojson::object& out) {
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeDatacontrol, &out);
-
   CHECK_EXIST(args, "providerId", out)
   CHECK_EXIST(args, "dataId", out)
 
@@ -494,7 +486,6 @@ void DatacontrolInstance::DataControlManagerGetdatacontrolconsumer(
 }
 void DatacontrolInstance::SQLDataControlConsumerInsert(
     const picojson::value& args, picojson::object& out) {
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeDatacontrol, &out);
   CHECK_EXIST(args, "callbackId", out)
   CHECK_EXIST(args, "reqId", out)
   CHECK_EXIST(args, "providerId", out)
@@ -566,7 +557,6 @@ void DatacontrolInstance::SQLDataControlConsumerInsert(
 }
 void DatacontrolInstance::SQLDataControlConsumerUpdate(
     const picojson::value& args, picojson::object& out) {
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeDatacontrol, &out);
   CHECK_EXIST(args, "callbackId", out)
   CHECK_EXIST(args, "reqId", out)
   CHECK_EXIST(args, "where", out)
@@ -642,7 +632,6 @@ void DatacontrolInstance::SQLDataControlConsumerUpdate(
 
 void DatacontrolInstance::SQLDataControlConsumerRemove(
     const picojson::value& args, picojson::object& out) {
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeDatacontrol, &out);
   CHECK_EXIST(args, "callbackId", out)
   CHECK_EXIST(args, "reqId", out)
   CHECK_EXIST(args, "where", out)
@@ -675,7 +664,6 @@ void DatacontrolInstance::SQLDataControlConsumerRemove(
 
 void DatacontrolInstance::SQLDataControlConsumerSelect(
     const picojson::value& args, picojson::object& out) {
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeDatacontrol, &out);
   CHECK_EXIST(args, "callbackId", out)
   CHECK_EXIST(args, "reqId", out)
   CHECK_EXIST(args, "columns", out)
@@ -736,7 +724,6 @@ void DatacontrolInstance::SQLDataControlConsumerSelect(
 void DatacontrolInstance::MappedDataControlConsumerAddvalue(
     const picojson::value& args,
     picojson::object& out) {
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeDatacontrol, &out);
   CHECK_EXIST(args, "callbackId", out)
   CHECK_EXIST(args, "reqId", out)
   CHECK_EXIST(args, "key", out)
@@ -772,7 +759,6 @@ void DatacontrolInstance::MappedDataControlConsumerAddvalue(
 }
 void DatacontrolInstance::MappedDataControlConsumerRemovevalue(
     const picojson::value& args, picojson::object& out) {
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeDatacontrol, &out);
   CHECK_EXIST(args, "callbackId", out)
   CHECK_EXIST(args, "reqId", out)
   CHECK_EXIST(args, "key", out)
@@ -808,7 +794,6 @@ void DatacontrolInstance::MappedDataControlConsumerRemovevalue(
 }
 void DatacontrolInstance::MappedDataControlConsumerGetvalue(
     const picojson::value& args, picojson::object& out) {
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeDatacontrol, &out);
   CHECK_EXIST(args, "callbackId", out)
   CHECK_EXIST(args, "reqId", out)
   CHECK_EXIST(args, "key", out)
@@ -841,7 +826,6 @@ void DatacontrolInstance::MappedDataControlConsumerGetvalue(
 }
 void DatacontrolInstance::MappedDataControlConsumerUpdatevalue(
     const picojson::value& args, picojson::object& out) {
-  CHECK_PRIVILEGE_ACCESS(kPrivilegeDatacontrol, &out);
   CHECK_EXIST(args, "callbackId", out)
   CHECK_EXIST(args, "reqId", out)
   CHECK_EXIST(args, "key", out)