From c23e6e76111f7d27d93a19083c480b28a8badce3 Mon Sep 17 00:00:00 2001 From: Piotr Kosko Date: Wed, 4 Nov 2015 13:24:52 +0100 Subject: [PATCH] Revert "[systeminfo] - Checking privileges moved to JS layer" 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 --- src/systeminfo/systeminfo_api.js | 46 ++++++++++++++++------------------- src/systeminfo/systeminfo_instance.cc | 7 +++++- 2 files changed, 27 insertions(+), 26 deletions(-) diff --git a/src/systeminfo/systeminfo_api.js b/src/systeminfo/systeminfo_api.js index 7294898..d78b82e 100644 --- a/src/systeminfo/systeminfo_api.js +++ b/src/systeminfo/systeminfo_api.js @@ -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, [ { diff --git a/src/systeminfo/systeminfo_instance.cc b/src/systeminfo/systeminfo_instance.cc index 4ff3dcd..8f6ad50 100644 --- a/src/systeminfo/systeminfo_instance.cc +++ b/src/systeminfo/systeminfo_instance.cc @@ -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 -- 2.7.4