[SystemInfo] Added privilege checks.
authorPawel Andruszkiewicz <p.andruszkie@samsung.com>
Fri, 20 Mar 2015 10:24:41 +0000 (11:24 +0100)
committerPawel Andruszkiewicz <p.andruszkie@samsung.com>
Wed, 25 Mar 2015 14:23:15 +0000 (23:23 +0900)
Change-Id: I971955873c2ef06c5fe923233e06a7bce3b9c20f

src/systeminfo/systeminfo_api.js
src/systeminfo/systeminfo_instance.cc

index 0d001955ea1ed01199530a28bb7d164937412885..037b499378c14d14a6e58e01c1f8fc3ade3179f7 100644 (file)
@@ -8,6 +8,9 @@ var T_ = xwalk.utils.type;
 var Converter_ = xwalk.utils.converter;
 var native_ = new xwalk.utils.NativeManager(extension);
 
+var _PRIVILEGE_SYSTEM = 'http://tizen.org/privilege/system';
+var _PRIVILEGE_SYSTEM_MANAGER = 'http://tizen.org/privilege/systemmanager';
+
 //enumeration SystemInfoPropertyId ////////////////////////////////////////////////////
 var SystemInfoPropertyId = {
         BATTERY : 'BATTERY',
@@ -95,18 +98,27 @@ function SystemInfoDeviceCapability(data) {
             enumerable : true
         },
         platformVersion : {
-            value : data.platformVersion,
-            writable : false,
+            get : function() {
+                xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_SYSTEM);
+                return data.platformVersion;
+            },
+            set : function() {},
             enumerable : true
         },
         webApiVersion : {
-            value : data.webApiVersion,
-            writable : false,
+            get : function() {
+                xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_SYSTEM);
+                return data.webApiVersion;
+            },
+            set : function() {},
             enumerable : true
         },
         nativeApiVersion : {
-            value : data.nativeApiVersion,
-            writable : false,
+            get : function() {
+                xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_SYSTEM);
+                return data.nativeApiVersion;
+            },
+            set : function() {},
             enumerable : true
         },
         platformName : {
@@ -543,21 +555,84 @@ function SystemInfoCellularNetwork(data) {
         lac : {value: Number(data.lac), writable: false, enumerable: true},
         isRoaming : {value: data.isRoaming, writable: false, enumerable: true},
         isFlightMode : {value: data.isFligthMode, writable: false, enumerable: true},
-        imei : {value: data.imei, writable: false, enumerable: true}
+        imei : {
+            get: function() {
+                xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_SYSTEM_MANAGER);
+                return data.imei;
+            },
+            set: function() {},
+            enumerable: true
+        }
     });
 }
 
 //class SystemInfoSIM ////////////////////////////////////////////////////
 function SystemInfoSIM(data) {
     Object.defineProperties(this, {
-        state : {value: data.state, writable: false, enumerable: true},
-        operatorName : {value: data.operatorName, writable: false, enumerable: true},
-        msisdn : {value: data.msisdn, writable: false, enumerable: true},
-        iccid : {value: data.iccid, writable: false, enumerable: true},
-        mcc : {value: Number(data.mcc), writable: false, enumerable: true},
-        mnc : {value: Number(data.mnc), writable: false, enumerable: true},
-        msin : {value: data.msin, writable: false, enumerable: true},
-        spn : {value: data.spn, writable: false, enumerable: true}
+        state : {
+            get: function() {
+                xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_SYSTEM);
+                return data.state;
+            },
+            set: function() {},
+            enumerable: true
+        },
+        operatorName : {
+            get: function() {
+                xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_SYSTEM);
+                return data.operatorName;
+            },
+            set: function() {},
+            enumerable: true
+        },
+        msisdn : {
+            get: function() {
+                xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_SYSTEM_MANAGER);
+                return data.msisdn;
+            },
+            set: function() {},
+            enumerable: true
+        },
+        iccid : {
+            get: function() {
+                xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_SYSTEM);
+                return data.iccid;
+            },
+            set: function() {},
+            enumerable: true
+        },
+        mcc : {
+            get: function() {
+                xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_SYSTEM);
+                return data.mcc;
+            },
+            set: function() {},
+            enumerable: true
+        },
+        mnc : {
+            get: function() {
+                xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_SYSTEM);
+                return data.mnc;
+            },
+            set: function() {},
+            enumerable: true
+        },
+        msin : {
+            get: function() {
+                xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_SYSTEM_MANAGER);
+                return data.msin;
+            },
+            set: function() {},
+            enumerable: true
+        },
+        spn : {
+            get: function() {
+                xwalk.utils.checkPrivilegeAccess(_PRIVILEGE_SYSTEM);
+                return data.spn;
+            },
+            set: function() {},
+            enumerable: true
+        },
     });
 }
 
index 34e98eecb1b542dc00f29b3fcba7927e3b6d1ea8..01490e925b621b7956b1772588ef40ce3cdce552 100644 (file)
@@ -53,6 +53,8 @@ const std::string kPropertyIdSim = "SIM";
 const std::string kPropertyIdPeripheral = "PERIPHERAL";
 const std::string kPropertyIdMemory= "MEMORY";
 
+const std::string kPrivilegeLED = "http://tizen.org/privilege/led";
+
 #define CHECK_EXIST(args, name, out) \
   if (!args.contains(name)) {\
     ReportError(TypeMismatchException(name" is required argument"), out);\
@@ -462,6 +464,8 @@ static void ReportSuccess(const picojson::value& result, picojson::object& out)
 void SysteminfoInstance::SetBrightness(const picojson::value& args, picojson::object& out) {
   LoggerD("entered");
 
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeLED, &out);
+
   CHECK_EXIST(args, "brightness", out)
 
   const double brightness = args.get("brightness").get<double>();
@@ -478,6 +482,8 @@ 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 result = DEVICE_ERROR_NONE;
   int brightness = 0;
   result = device_flash_get_brightness(&brightness);
@@ -492,6 +498,8 @@ 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 result = DEVICE_ERROR_NONE;
   int brightness = 0;
   result = device_flash_get_max_brightness(&brightness);