[Push] Privilege checks moved to JS layer
authorPiotr Kosko <p.kosko@samsung.com>
Mon, 4 May 2015 07:10:50 +0000 (09:10 +0200)
committerPawel Andruszkiewicz <p.andruszkie@samsung.com>
Mon, 4 May 2015 07:47:59 +0000 (16:47 +0900)
Change-Id: I893855bb255593d55134e9b96ea499c5e3182781
Signed-off-by: Piotr Kosko <p.kosko@samsung.com>
src/push/push_api.js
src/push/push_instance.cc

index 181b2ed..eb6bc43 100644 (file)
@@ -8,7 +8,7 @@
 var native = new xwalk.utils.NativeManager(extension);
 var validator = xwalk.utils.validator;
 var validatorType = xwalk.utils.type;
-
+var Privilege = xwalk.utils.privilege;
 
 /**
  * @const
@@ -40,6 +40,7 @@ function PushManager() {
 }
 
 PushManager.prototype.registerService = function(appControl, successCallback, errorCallback) {
+  xwalk.utils.checkPrivilegeAccess(Privilege.PUSH);
   var data = validator.validateArgs(arguments, [
     {
       name: 'appControl',
@@ -78,6 +79,7 @@ PushManager.prototype.registerService = function(appControl, successCallback, er
 };
 
 PushManager.prototype.unregisterService = function(successCallback, errorCallback) {
+  xwalk.utils.checkPrivilegeAccess(Privilege.PUSH);
   var data = validator.validateArgs(arguments, [
     {
       name: 'successCallback',
@@ -104,6 +106,7 @@ PushManager.prototype.unregisterService = function(successCallback, errorCallbac
 };
 
 PushManager.prototype.connectService = function(notificationCallback) {
+  xwalk.utils.checkPrivilegeAccess(Privilege.PUSH);
   var data = validator.validateArgs(arguments, [
     {
       name: 'notificationCallback',
@@ -120,6 +123,7 @@ PushManager.prototype.connectService = function(notificationCallback) {
 };
 
 PushManager.prototype.disconnectService = function() {
+  xwalk.utils.checkPrivilegeAccess(Privilege.PUSH);
   var ret = native.callSync('Push_disconnectService', {});
   if (native.isFailure(ret)) {
     throw native.getErrorObject(ret);
@@ -128,6 +132,7 @@ PushManager.prototype.disconnectService = function() {
 };
 
 PushManager.prototype.getRegistrationId = function() {
+  xwalk.utils.checkPrivilegeAccess(Privilege.PUSH);
   var ret = native.callSync('Push_getRegistrationId', {});
   if (native.isFailure(ret)) {
     throw native.getErrorObject(ret);
@@ -136,6 +141,7 @@ PushManager.prototype.getRegistrationId = function() {
 };
 
 PushManager.prototype.getUnreadNotifications = function() {
+  xwalk.utils.checkPrivilegeAccess(Privilege.PUSH);
   var ret = native.callSync('Push_getUnreadNotifications', {});
   if (native.isFailure(ret)) {
     throw native.getErrorObject(ret);
index fc16936..376d967 100644 (file)
 namespace extension {
 namespace push {
 
-namespace {
-
-const std::string kPrivilegePush = "http://tizen.org/privilege/push";
-
-} // namespace
-
 PushInstance::PushInstance(): m_ignoreNotificationEvents(true) {
     LoggerD("Enter");
     using std::placeholders::_1;
@@ -49,8 +43,6 @@ void PushInstance::registerService(const picojson::value& args,
         picojson::object& out) {
     LoggerD("Enter");
 
-    CHECK_PRIVILEGE_ACCESS(kPrivilegePush, &out);
-
     PushManager::ApplicationControl appControl;
     appControl.operation = args.get("operation").get<std::string>();
     if (args.get("uri").is<std::string>()) {
@@ -90,8 +82,6 @@ void PushInstance::unregisterService(const picojson::value& args,
         picojson::object& out) {
     LoggerD("Enter");
 
-    CHECK_PRIVILEGE_ACCESS(kPrivilegePush, &out);
-
     common::PlatformResult result = PushManager::getInstance()
             .unregisterService(args.get("callbackId").get<double>());
     if (result.IsError()) {
@@ -107,8 +97,6 @@ void PushInstance::connectService(const picojson::value& args,
         picojson::object& out) {
     LoggerD("Enter");
 
-    CHECK_PRIVILEGE_ACCESS(kPrivilegePush, &out);
-
     m_ignoreNotificationEvents = false;
     picojson::value result;
     ReportSuccess(result, out);
@@ -118,8 +106,6 @@ void PushInstance::disconnectService(const picojson::value& args,
         picojson::object& out) {
     LoggerD("Enter");
 
-    CHECK_PRIVILEGE_ACCESS(kPrivilegePush, &out);
-
     m_ignoreNotificationEvents = true;
     picojson::value result;
     ReportSuccess(result, out);
@@ -129,8 +115,6 @@ void PushInstance::getRegistrationId(const picojson::value& args,
         picojson::object& out) {
     LoggerD("Enter");
 
-    CHECK_PRIVILEGE_ACCESS(kPrivilegePush, &out);
-
     std::string id;
     common::PlatformResult result = PushManager::getInstance()
             .getRegistrationId(id);
@@ -148,8 +132,6 @@ void PushInstance::getUnreadNotifications(const picojson::value& args,
         picojson::object& out) {
     LoggerD("Enter");
 
-    CHECK_PRIVILEGE_ACCESS(kPrivilegePush, &out);
-
     common::PlatformResult result = PushManager::getInstance()
             .getUnreadNotifications();
     if (result.IsError()) {