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