[Application] Moved checking privileges to JS layer.
authorTomasz Marciniak <t.marciniak@samsung.com>
Thu, 30 Apr 2015 11:52:17 +0000 (13:52 +0200)
committerPawel Andruszkiewicz <p.andruszkie@samsung.com>
Mon, 4 May 2015 07:25:14 +0000 (16:25 +0900)
[Verification] Code compiles without errors.

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

index 950dc91..49fbd07 100644 (file)
@@ -5,6 +5,7 @@
 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);
 
@@ -75,6 +76,8 @@ ApplicationManager.prototype.getCurrentApplication = function() {
 };
 
 ApplicationManager.prototype.kill = function() {
+  xwalk.utils.checkPrivilegeAccess(Privilege.APPMANAGER_KILL);
+
   var args = AV.validateMethod(arguments, [
       {
         name : 'contextId',
@@ -110,6 +113,8 @@ ApplicationManager.prototype.kill = function() {
 };
 
 ApplicationManager.prototype.launch = function() {
+  xwalk.utils.checkPrivilegeAccess(Privilege.APPLICATION_LAUNCH);
+
   var args = AV.validateMethod(arguments, [
       {
         name : 'id',
@@ -145,6 +150,8 @@ ApplicationManager.prototype.launch = function() {
 };
 
 ApplicationManager.prototype.launchAppControl = function() {
+  xwalk.utils.checkPrivilegeAccess(Privilege.APPLICATION_LAUNCH);
+
   var args = AV.validateMethod(arguments, [
       {
         name : 'appControl',
@@ -368,6 +375,8 @@ ApplicationManager.prototype.getAppInfo = function() {
 };
 
 ApplicationManager.prototype.getAppCerts = function() {
+  xwalk.utils.checkPrivilegeAccess(Privilege.APPMANAGER_CERTIFICATE);
+
   var args = AV.validateMethod(arguments, [
       {
         name : 'id',
@@ -423,6 +432,8 @@ ApplicationManager.prototype.getAppSharedURI = function() {
 };
 
 ApplicationManager.prototype.getAppMetaData = function() {
+  xwalk.utils.checkPrivilegeAccess(Privilege.APPLICATION_INFO);
+
   var args = AV.validateMethod(arguments, [
       {
         name : 'id',
@@ -588,6 +599,7 @@ function ApplicationInformation(data) {
   var sizeException;
 
   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);
index ec51c46..51f1a1e 100644 (file)
 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(const std::string& app_id) :
@@ -96,8 +88,6 @@ 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>()) {
@@ -122,8 +112,6 @@ 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>()) {
@@ -167,32 +155,24 @@ 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);
 }