[Privileges] - Fixing privilege issues
authorAndrzej Popowski <a.popowski@samsung.com>
Wed, 30 Dec 2015 13:17:15 +0000 (14:17 +0100)
committerAndrzej Popowski <a.popowski@samsung.com>
Wed, 30 Dec 2015 13:17:15 +0000 (14:17 +0100)
Change-Id: I69bcfd0b6d5333027f194c13b6b120ac9cb74275
Signed-off-by: Andrzej Popowski <a.popowski@samsung.com>
src/calendar/js/calendar_manager.js
src/contact/js/contact_manager.js
src/content/js/manager.js
src/package/package_api.js
src/power/power_api.js
src/secureelement/secureelement_api.js

index 0f1ca1ec1e253d50c9f58a98c3b47ae66fdc319c..cadae4f59b96916d8ae54a1da3ec1b2d89300d87 100755 (executable)
@@ -97,8 +97,8 @@ CalendarManager.prototype.getDefaultCalendar = function() {
   return CalendarManager_getDefaultCalendar.apply(this, arguments);
 };
 
-CalendarManager.prototype.getCalendar = function() {
-
+var CalendarManagerGetCalendar = function() {
+  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CALENDAR_READ);
   var args = validator_.validateArgs(arguments, [{
     name: 'type',
     type: types_.ENUM,
@@ -129,6 +129,10 @@ CalendarManager.prototype.getCalendar = function() {
   return new Calendar(new InternalCalendar(native_.getResultObject(result)));
 };
 
+CalendarManager.prototype.getCalendar = function() {
+  return CalendarManagerGetCalendar.apply(this, arguments);
+};
+
 CalendarManager.prototype.addCalendar = function() {
 
   var args = validator_.validateArgs(arguments, [{
index 896d1ed159a95b05232a34bcf8d7728c0060664d..45a3329bf008c7689fc594f24f3c674557756e89 100755 (executable)
@@ -225,7 +225,8 @@ ContactManager.prototype.get = function() {
 };
 
 // Updates a person in the address book synchronously.
-ContactManager.prototype.update = function() {
+var ContactManagerUpdate = function() {
+  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CONTACT_WRITE);
   // validation
   var args = validator_.validateArgs(arguments, [{
     name: 'person',
@@ -245,6 +246,10 @@ ContactManager.prototype.update = function() {
   }
 };
 
+ContactManager.prototype.update = function() {
+  ContactManagerUpdate.apply(this, arguments);
+};
+
 // Updates several existing persons in the contact DB asynchronously.
 ContactManager.prototype.updateBatch = function() {
   var args = validator_.validateArgs(arguments, [
index 7b610442f6863e506d5efaa91d22e6c19a9991a0..a7bc8a60d90c7080157e5bf48ff74426b26c4c31 100755 (executable)
@@ -29,7 +29,9 @@ function _ContentManagerChangeCallback(result) {
 function ContentManager() {
 }
 
-ContentManager.prototype.update = function(content) {
+var ContentManagerUpdate = function(content) {
+  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.CONTENT_WRITE);
+
   var args = validator_.validateArgs(arguments, [
     {name: 'content', type: types_.PLATFORM_OBJECT, values: Content}
   ]);
@@ -45,6 +47,10 @@ ContentManager.prototype.update = function(content) {
   }
 };
 
+ContentManager.prototype.update = function() {
+  ContentManagerUpdate.apply(this, arguments);
+};
+
 ContentManager.prototype.updateBatch = function(contents, successCallback, errorCallback) {
   var args = validator_.validateArgs(arguments, [
     {name: 'contents', type: types_.ARRAY, values: Content},
index 285786e877ddef299cc9597de01060340ad2bc64..625a145fa3bd5453c0007aa92c4ba711db49a383 100644 (file)
@@ -141,8 +141,8 @@ function PackageManager() {
   // constructor of PackageManager
 }
 
-
-PackageManager.prototype.install = function(packageFileURI, progressCallback) {
+var PackageManagerInstall = function() {
+  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.PACKAGEMANAGER_INSTALL);
   var args = validator_.validateArgs(arguments, [
     {'name' : 'packageFileURI', 'type' : types_.STRING},
     {'name' : 'progressCallback',
@@ -181,7 +181,12 @@ PackageManager.prototype.install = function(packageFileURI, progressCallback) {
   }
 };
 
-PackageManager.prototype.uninstall = function(id, progressCallback) {
+PackageManager.prototype.install = function(packageFileURI, progressCallback) {
+  PackageManagerInstall.apply(this, arguments);
+};
+
+var PackageManagerUninstall = function() {
+  xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.PACKAGEMANAGER_INSTALL);
   var args = validator_.validateArgs(arguments, [
     {'name' : 'id', 'type' : types_.STRING},
     {'name' : 'progressCallback',
@@ -218,7 +223,11 @@ PackageManager.prototype.uninstall = function(id, progressCallback) {
   } catch (e) {
     throw e;
   }
+};
 
+
+PackageManager.prototype.uninstall = function(id, progressCallback) {
+  PackageManagerUninstall.apply(this, arguments);
 };
 
 PackageManager.prototype.getPackagesInfo = function(successCallback, errorCallback) {
index d74fba31100aa8e9827bd192be1e97b2de219676..07ef7f9efbc0dc9e6db248e5ea611e0b6a1cd370 100755 (executable)
@@ -212,7 +212,8 @@ PowerManager.prototype.getScreenBrightness = function() {
  * Sets the screen brightness level for an application, from 0 to 1.
  * @param {!number} brightness The screen brightness value to set.
  */
-PowerManager.prototype.setScreenBrightness = function(brightness) {
+var PowerManagerSetScreenBrightness = function() {
+    xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.POWER);
     var args = validator_.validateArgs(arguments, [
         {'name' : 'brightness', 'type': types_.DOUBLE}
     ]);
@@ -229,6 +230,10 @@ PowerManager.prototype.setScreenBrightness = function(brightness) {
     } catch(e) {
         throw e;
     }
+};
+
+PowerManager.prototype.setScreenBrightness = function(brightness) {
+    PowerManagerSetScreenBrightness.apply(this, arguments);
 }
 
 /**
index 2163db02d6b0cbd4f1e89dd2b690565dd0b39d57..09b53b314e12cb0858c103afe5dcf96175ece7fb 100644 (file)
@@ -92,7 +92,8 @@ var SEChangeListener = new ListenerManager(native_, SE_CHANGE_LISTENER);
 function SEService() {
 }
 
-SEService.prototype.getReaders = function() {
+var SEServiceGetReaders = function() {
+    xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.SECUREELEMENT);
     var args = validator_.validateArgs(arguments, [
         { name: "successCallback", type: types_.FUNCTION },
         { name: "errorCallback", type: types_.FUNCTION, optional: true, nullable: true }
@@ -119,7 +120,12 @@ SEService.prototype.getReaders = function() {
     }
 };
 
-SEService.prototype.registerSEListener = function() {
+SEService.prototype.getReaders = function() {
+    SEServiceGetReaders.apply(this, arguments);
+};
+
+var SEServiceRegisterSEListener = function() {
+    xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.SECUREELEMENT);
     var args = validator_.validateArgs(arguments, [
         {
             name : 'eventCallback',
@@ -131,7 +137,12 @@ SEService.prototype.registerSEListener = function() {
     return SEChangeListener.addListener(args.eventCallback);
 };
 
-SEService.prototype.unregisterSEListener = function() {
+SEService.prototype.registerSEListener = function() {
+    return SEServiceRegisterSEListener.apply(this, arguments);
+};
+
+var SEServiceUnregisterSEListener = function() {
+    xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.SECUREELEMENT);
     var args = validator_.validateArgs(arguments, [
         {
             name : 'id',
@@ -140,9 +151,14 @@ SEService.prototype.unregisterSEListener = function() {
     ]);
 
     SEChangeListener.removeListener(args.id);
+};
+
+SEService.prototype.unregisterSEListener = function() {
+    SEServiceUnregisterSEListener.apply(this, arguments);
 }
 
-SEService.prototype.shutdown = function() {
+var SEServiceShutdown = function() {
+    xwalk.utils.checkPrivilegeAccess(xwalk.utils.privilege.SECUREELEMENT);
     var result = native_.callSync('SEService_shutdown', {});
 
     if (native_.isFailure(result)) {
@@ -150,6 +166,10 @@ SEService.prototype.shutdown = function() {
     }
 };
 
+SEService.prototype.shutdown = function() {
+    SEServiceShutdown.apply(this, arguments);
+};
+
 //////////////////Reader/////////////////
 
 function Reader(reader_handle) {