Revert "[Application] Moved checking privileges to JS layer."
authorTomasz Marciniak <t.marciniak@samsung.com>
Fri, 6 Nov 2015 10:05:01 +0000 (11:05 +0100)
committerHyunJin Park <hj.na.park@samsung.com>
Wed, 9 Dec 2015 04:52:15 +0000 (13:52 +0900)
This reverts commit d5be33204f9eb3e15bfe15a437a026d4d21f601a.
This also applies changes from commit 0c20e951d04a6917e12ea80b7691fb582eeb3d12

Change-Id: I230dac370fed041e094ef7f4cfc1fe49bce4b0c6
Signed-off-by: Tomasz Marciniak <t.marciniak@samsung.com>
src/application/application_api.js
src/application/application_instance.cc

index e8b00eef88b3ba5dafc6004bb922cc8ee6fab595..7b42f15c0c86b8eed0f286e1ee475db0b4042025 100755 (executable)
@@ -17,7 +17,6 @@
 var T = xwalk.utils.type;
 var Converter = xwalk.utils.converter;
 var AV = xwalk.utils.validator;
-var Privilege = xwalk.utils.privilege;
 
 var native = new xwalk.utils.NativeManager(extension);
 
@@ -119,8 +118,6 @@ ApplicationManager.prototype.getCurrentApplication = function() {
 };
 
 ApplicationManager.prototype.kill = function() {
-  xwalk.utils.checkPrivilegeAccess(Privilege.APPMANAGER_KILL);
-
   var args = AV.validateMethod(arguments, [
       {
         name : 'contextId',
@@ -156,8 +153,6 @@ ApplicationManager.prototype.kill = function() {
 };
 
 ApplicationManager.prototype.launch = function() {
-  xwalk.utils.checkPrivilegeAccess(Privilege.APPLICATION_LAUNCH);
-
   var args = AV.validateMethod(arguments, [
       {
         name : 'id',
@@ -193,8 +188,6 @@ ApplicationManager.prototype.launch = function() {
 };
 
 ApplicationManager.prototype.launchAppControl = function() {
-  xwalk.utils.checkPrivilegeAccess(Privilege.APPLICATION_LAUNCH);
-
   var args = AV.validateMethod(arguments, [
       {
         name : 'appControl',
@@ -418,8 +411,6 @@ ApplicationManager.prototype.getAppInfo = function() {
 };
 
 ApplicationManager.prototype.getAppCerts = function() {
-  xwalk.utils.checkPrivilegeAccess(Privilege.APPMANAGER_CERTIFICATE);
-
   var args = AV.validateMethod(arguments, [
       {
         name : 'id',
@@ -475,8 +466,6 @@ ApplicationManager.prototype.getAppSharedURI = function() {
 };
 
 ApplicationManager.prototype.getAppMetaData = function() {
-  xwalk.utils.checkPrivilegeAccess(Privilege.APPLICATION_INFO);
-
   var args = AV.validateMethod(arguments, [
       {
         name : 'id',
@@ -795,27 +784,19 @@ Application.prototype.broadcastTrustedEvent = function(event, data) {
 // class ApplicationInformation ////////////////////////////////////////////////////
 
 function ApplicationInformation(data) {
-  var size;
-  var sizeException;
+  var size = undefined;
 
   function sizeGetter() {
-    xwalk.utils.checkPrivilegeAccess(Privilege.APPLICATION_INFO);
     if (undefined === size) {
       var callArgs = { packageId : this.packageId }; // jshint ignore:line
       var result = native.callSync('ApplicationInformation_getSize', callArgs);
 
       if (native.isFailure(result)) {
-        sizeException = native.getErrorObject(result);
-        size = 0;
+        throw native.getErrorObject(result);
       } else {
         size = native.getResultObject(result).size;
       }
     }
-
-    if (undefined !== sizeException) {
-      throw sizeException;
-    }
-
     return size;
   }
 
index 005b65c4a88585e8120927aba7272bfefefd0f9c..67ff539d538debac1ecd87ff9f61ae14db343669 100755 (executable)
 #include "common/platform_exception.h"
 #include "common/task-queue.h"
 #include "common/current_application.h"
+#include "common/tools.h"
 
 namespace extension {
 namespace application {
 
+namespace {
+// The privileges that are required in Application API
+const std::string kPrivilegeAppManagerCertificate = "http://tizen.org/privilege/appmanager.certificate";
+const std::string kPrivilegeAppManagerKill = "http://tizen.org/privilege/appmanager.kill";
+const std::string kPrivilegeApplicationInfo = "http://tizen.org/privilege/application.info";
+const std::string kPrivilegeApplicationLaunch = "http://tizen.org/privilege/application.launch";
+}  // namespace
+
 using namespace common;
 
 ApplicationInstance::ApplicationInstance() :
@@ -111,6 +120,8 @@ void ApplicationInstance::GetAppInfo(const picojson::value& args, picojson::obje
 void ApplicationInstance::GetAppCerts(const picojson::value& args, picojson::object& out) {
   LoggerD("Entered");
 
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeAppManagerCertificate, &out);
+
   std::string app_id = app_id_;
   const auto& id = args.get("id");
   if (id.is<std::string>()) {
@@ -135,6 +146,8 @@ void ApplicationInstance::GetAppSharedURI(const picojson::value& args, picojson:
 void ApplicationInstance::GetAppMetaData(const picojson::value& args, picojson::object& out) {
   LoggerD("Entered");
 
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeApplicationInfo, &out);
+
   std::string app_id = app_id_;
   const auto& id = args.get("id");
   if (id.is<std::string>()) {
@@ -178,24 +191,32 @@ void ApplicationInstance::ReplyFailure(const picojson::value& args, picojson::ob
 void ApplicationInstance::GetSize(const picojson::value& args, picojson::object& out) {
   LoggerD("Entered");
 
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeApplicationInfo, &out);
+
   manager_.GetApplicationInformationSize(args, &out);
 }
 
 void ApplicationInstance::Kill(const picojson::value& args, picojson::object& out) {
   LoggerD("Entered");
 
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeAppManagerKill, &out);
+
   manager_.Kill(args);
 }
 
 void ApplicationInstance::Launch(const picojson::value& args, picojson::object& out) {
   LoggerD("Entered");
 
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeApplicationLaunch, &out);
+
   manager_.Launch(args);
 }
 
 void ApplicationInstance::LaunchAppControl(const picojson::value& args, picojson::object& out) {
   LoggerD("Entered");
 
+  CHECK_PRIVILEGE_ACCESS(kPrivilegeApplicationLaunch, &out);
+
   manager_.LaunchAppControl(args);
 }