Revert "[systeminfo] - Checking privileges moved to JS layer"
authorPiotr Kosko <p.kosko@samsung.com>
Wed, 4 Nov 2015 12:24:52 +0000 (13:24 +0100)
committerTomasz Marciniak <t.marciniak@samsung.com>
Fri, 4 Dec 2015 13:06:57 +0000 (14:06 +0100)
This reverts commit 70158c3f7b0e23143d1479edd95f666cf34c8fe0.
This also applies chagnes from commit a2dfb57d190b04947765174efc12a09c2e7e42f6

Commit also changes way of checking privileges for getters in objects in JS.

[Verification] TCT passrate is 100%

Change-Id: I582f9e9c6e0573dbb2f03aecc4b126a7c0a9b3a7
Signed-off-by: Piotr Kosko <p.kosko@samsung.com>
src/systeminfo/systeminfo_api.js
src/systeminfo/systeminfo_instance.cc

index 72948986dc9e00481d79d1edf671c4a4354955f5..d78b82ea94cb39c252767bf58bd6ed7f20d86026 100644 (file)
@@ -20,6 +20,7 @@ var types_ = validator_.Types;
 var T_ = xwalk.utils.type;
 var Converter_ = xwalk.utils.converter;
 var native_ = new xwalk.utils.NativeManager(extension);
+var privUtils_ = xwalk.utils;
 
 // index of default property for sim-related callbacks
 var defaultListenerIndex = 0;
@@ -113,7 +114,7 @@ function SystemInfoDeviceCapability(data) {
         },
         platformVersion : {
             get : function() {
-                xwalk.utils.checkPrivilegeAccess(privilege_.SYSTEM);
+                privUtils_.checkPrivilegeAccess(privilege_.SYSTEM);
                 return data.platformVersion;
             },
             set : function() {},
@@ -121,7 +122,7 @@ function SystemInfoDeviceCapability(data) {
         },
         webApiVersion : {
             get : function() {
-                xwalk.utils.checkPrivilegeAccess(privilege_.SYSTEM);
+                privUtils_.checkPrivilegeAccess(privilege_.SYSTEM);
                 return data.webApiVersion;
             },
             set : function() {},
@@ -129,7 +130,7 @@ function SystemInfoDeviceCapability(data) {
         },
         nativeApiVersion : {
             get : function() {
-                xwalk.utils.checkPrivilegeAccess(privilege_.SYSTEM);
+                privUtils_.checkPrivilegeAccess(privilege_.SYSTEM);
                 return data.nativeApiVersion;
             },
             set : function() {},
@@ -582,7 +583,7 @@ function SystemInfoCellularNetwork(data) {
         isFlightMode : {value: data.isFligthMode, writable: false, enumerable: true},
         imei : {
             get: function() {
-                xwalk.utils.checkPrivilegeAccess4Ver("2.3.1", privilege_.TELEPHONY, privilege_.SYSTEMMANAGER);
+                privUtils_.checkPrivilegeAccess4Ver("2.3.1", privilege_.TELEPHONY, privilege_.SYSTEMMANAGER);
                 return data.imei;
             },
             set: function() {},
@@ -596,7 +597,7 @@ function SystemInfoSIM(data) {
     Object.defineProperties(this, {
         state : {
             get: function() {
-                xwalk.utils.checkPrivilegeAccess(privilege_.SYSTEM);
+                privUtils_.checkPrivilegeAccess(privilege_.SYSTEM);
                 return data.state;
             },
             set: function() {},
@@ -604,7 +605,7 @@ function SystemInfoSIM(data) {
         },
         operatorName : {
             get: function() {
-                xwalk.utils.checkPrivilegeAccess(privilege_.SYSTEM);
+                privUtils_.checkPrivilegeAccess(privilege_.SYSTEM);
                 return data.operatorName;
             },
             set: function() {},
@@ -612,7 +613,7 @@ function SystemInfoSIM(data) {
         },
         msisdn : {
             get: function() {
-                xwalk.utils.checkPrivilegeAccess4Ver("2.3.1", privilege_.TELEPHONY, privilege_.SYSTEMMANAGER);
+                privUtils_.checkPrivilegeAccess4Ver("2.3.1", privilege_.TELEPHONY, privilege_.SYSTEMMANAGER);
                 return data.msisdn;
             },
             set: function() {},
@@ -620,7 +621,7 @@ function SystemInfoSIM(data) {
         },
         iccid : {
             get: function() {
-                xwalk.utils.checkPrivilegeAccess(privilege_.SYSTEM);
+                privUtils_.checkPrivilegeAccess(privilege_.SYSTEM);
                 return data.iccid;
             },
             set: function() {},
@@ -628,7 +629,7 @@ function SystemInfoSIM(data) {
         },
         mcc : {
             get: function() {
-                xwalk.utils.checkPrivilegeAccess(privilege_.SYSTEM);
+                privUtils_.checkPrivilegeAccess(privilege_.SYSTEM);
                 return Number(data.mcc);
             },
             set: function() {},
@@ -636,7 +637,7 @@ function SystemInfoSIM(data) {
         },
         mnc : {
             get: function() {
-                xwalk.utils.checkPrivilegeAccess(privilege_.SYSTEM);
+                privUtils_.checkPrivilegeAccess(privilege_.SYSTEM);
                 return Number(data.mnc);
             },
             set: function() {},
@@ -644,7 +645,7 @@ function SystemInfoSIM(data) {
         },
         msin : {
             get: function() {
-                xwalk.utils.checkPrivilegeAccess4Ver("2.3.1", privilege_.TELEPHONY, privilege_.SYSTEMMANAGER);
+                privUtils_.checkPrivilegeAccess4Ver("2.3.1", privilege_.TELEPHONY, privilege_.SYSTEMMANAGER);
                 return data.msin;
             },
             set: function() {},
@@ -652,7 +653,7 @@ function SystemInfoSIM(data) {
         },
         spn : {
             get: function() {
-                xwalk.utils.checkPrivilegeAccess(privilege_.SYSTEM);
+                privUtils_.checkPrivilegeAccess(privilege_.SYSTEM);
                 return data.spn;
             },
             set: function() {},
@@ -677,8 +678,6 @@ function SystemInfoMemory(data) {
 
 function SystemInfoCameraFlash(data) {
   var getBrightness = function() {
-      xwalk.utils.checkPrivilegeAccess(privilege_.LED);
-
       var result = native_.callSync('SystemInfo_getBrightness', {});
       if (native_.isSuccess(result)) {
         return Converter_.toLong(native_.getResultObject(result)) / this.levels;
@@ -687,8 +686,6 @@ function SystemInfoCameraFlash(data) {
     };
 
   var getLevels = function() {
-      xwalk.utils.checkPrivilegeAccess(privilege_.LED);
-
       var result = native_.callSync('SystemInfo_getMaxBrightness', {});
       if (native_.isSuccess(result)) {
         return Converter_.toLong(native_.getResultObject(result));
@@ -704,8 +701,6 @@ function SystemInfoCameraFlash(data) {
 }
 
 SystemInfoCameraFlash.prototype.setBrightness = function(brightness) {
-  xwalk.utils.checkPrivilegeAccess(privilege_.LED);
-
   var args = validator_.validateArgs(arguments, [
     {name: 'brightness', type: types_.DOUBLE}
   ]);
@@ -781,7 +776,7 @@ var _createPropertyArray = function (property, data) {
 var getPropertyFunction = function(cppLabel, objectCreateFunction) {
     return function() {
         if (arguments[0] === "CELLULAR_NETWORK") {
-            xwalk.utils.checkPrivilegeAccess4Ver("2.4", privilege_.TELEPHONY);
+            privUtils_.checkPrivilegeAccess4Ver("2.4", privilege_.TELEPHONY);
         }
 
         var args = validator_.validateArgs(arguments, [
@@ -819,12 +814,13 @@ var getPropertyFunction = function(cppLabel, objectCreateFunction) {
     };
 }
 
-SystemInfo.prototype.getPropertyValue =
-    getPropertyFunction('SystemInfo_getPropertyValue', _createProperty);
-
-SystemInfo.prototype.getPropertyValueArray =
-    getPropertyFunction('SystemInfo_getPropertyValueArray', _createPropertyArray);
+SystemInfo.prototype.getPropertyValue = function() {
+  getPropertyFunction('SystemInfo_getPropertyValue', _createProperty).apply(this, arguments);
+};
 
+SystemInfo.prototype.getPropertyValueArray = function() {
+  getPropertyFunction('SystemInfo_getPropertyValueArray', _createPropertyArray).apply(this, arguments);
+};
 
 //SystemInfo helpers ///////////////////////////////////////////////////
 var _batteryStr = SystemInfoPropertyId.BATTERY;
@@ -1261,7 +1257,7 @@ var _unregisterListener = function (watchId, isTimeout) {
 var getListenerFunction = function (isArray) {
     return function() {
         if (arguments[0] === "CELLULAR_NETWORK") {
-            xwalk.utils.checkPrivilegeAccess4Ver("2.4", privilege_.TELEPHONY);
+            privUtils_.checkPrivilegeAccess4Ver("2.4", privilege_.TELEPHONY);
         }
         var args = validator_.validateArgs(arguments, [
                  {
index 4ff3dcd0d9d1876024616255f7b3049055457d48..8f6ad504c6fd0206e6d02a1321d2593075a9bf7f 100644 (file)
@@ -24,6 +24,7 @@
 #include "common/logger.h"
 #include "common/platform_exception.h"
 #include "common/task-queue.h"
+#include "common/tools.h"
 
 #include "systeminfo-utils.h"
 #include "systeminfo_device_capability.h"
@@ -39,6 +40,8 @@ namespace {
 const std::string kPropertyIdString = "propertyId";
 const std::string kListenerIdString = "listenerId";
 
+const std::string kPrivilegeLED = "http://tizen.org/privilege/led";
+
 #define CHECK_EXIST(args, name, out) \
   if (!args.contains(name)) {\
     LogAndReportError(TypeMismatchException(name" is required argument"), out);\
@@ -124,6 +127,7 @@ void SysteminfoInstance::GetCount(const picojson::value& args, picojson::object&
 
 void SysteminfoInstance::SetBrightness(const picojson::value& args, picojson::object& out) {
   LoggerD("entered");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeLED, &out);
 
   CHECK_EXIST(args, "brightness", out)
 
@@ -147,6 +151,7 @@ void SysteminfoInstance::SetBrightness(const picojson::value& args, picojson::ob
 
 void SysteminfoInstance::GetBrightness(const picojson::value& args, picojson::object& out) {
   LoggerD("entered");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeLED, &out);
 
   int brightness = 0;
   int result = device_flash_get_brightness(&brightness);
@@ -162,6 +167,7 @@ void SysteminfoInstance::GetBrightness(const picojson::value& args, picojson::ob
 
 void SysteminfoInstance::GetMaxBrightness(const picojson::value& args, picojson::object& out) {
   LoggerD("entered");
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeLED, &out);
 
   int brightness = 0;
   int result = device_flash_get_max_brightness(&brightness);
@@ -174,6 +180,5 @@ void SysteminfoInstance::GetMaxBrightness(const picojson::value& args, picojson:
   ReportSuccess(picojson::value(std::to_string(brightness)), out);
 }
 
-
 } // namespace systeminfo
 } // namespace extension