fix on handling the request from admin user as global request 30/105430/2
authorjongmyeongko <jongmyeong.ko@samsung.com>
Fri, 16 Dec 2016 12:13:48 +0000 (21:13 +0900)
committerjongmyeongko <jongmyeong.ko@samsung.com>
Fri, 16 Dec 2016 12:45:37 +0000 (21:45 +0900)
- to support parser plugin

Change-Id: I5861c5733db1b8e6413887458586d357a64c17e1
Signed-off-by: jongmyeongko <jongmyeong.ko@samsung.com>
src/common/pkgmgr_interface.cc
src/common/step/configuration/step_configure.cc

index ab9275c..7026a91 100644 (file)
@@ -17,6 +17,7 @@
 #include "common/app_query_interface.h"
 #include "common/pkgmgr_query.h"
 #include "common/pkgmgr_signal.h"
+#include "common/utils/user_util.h"
 
 namespace bf = boost::filesystem;
 
@@ -24,6 +25,7 @@ namespace {
 
 const char kDeltaFileExtension[] = ".delta";
 const char kLegacyContentPath[] = "/opt/usr/media";
+const uid_t kGlobalUserUid = tzplatform_getuid(TZ_SYS_GLOBALAPP_USER);
 
 }
 
@@ -66,16 +68,28 @@ int PkgMgrInterface::InitInternal(int argc, char** argv) {
   if (!pkgmgr_installer_interface_->CreatePkgMgrInstaller(&pi_,
                                                           &install_mode_)) {
     LOG(ERROR) << "Cannot create pkgmgr_installer object. Aborting.";
-    return false;
+    return -1;
   }
 
   int result = pkgmgr_installer_receive_request(pi_, argc, argv);
   if (result) {
     LOG(ERROR) << "Cannot receive request. Invalid arguments?";
     // no need to free pkgmgr_installer here. it will be freed in DTOR.
+    return -1;
   }
 
-  return result;
+#ifdef ADMIN_USER_GLOBAL_INSTALLATION_ONLY
+  // Set target uid as tizenglobalapp if admin user's request
+  if (IsAdminUser(pkgmgr_installer_get_uid(pi_))) {
+    result = pkgmgr_installer_set_uid(pi_, kGlobalUserUid);
+    if (result) {
+      LOG(ERROR) << "Failed to set global uid";
+      return -1;
+    }
+  }
+#endif
+
+  return 0;
 }
 
 PkgMgrInterface::~PkgMgrInterface() {
index 404a832..3c803ad 100644 (file)
@@ -27,7 +27,6 @@ namespace configuration {
 
 const char kStrEmpty[] = "";
 const char kAppFWUser[] = "app_fw";
-const uid_t kGlobalUserUid = tzplatform_getuid(TZ_SYS_GLOBALAPP_USER);
 
 StepConfigure::StepConfigure(InstallerContext* context, PkgMgrPtr pkgmgr)
     : Step(context),
@@ -198,14 +197,6 @@ Step::Status StepConfigure::precheck() {
     return Status::OPERATION_NOT_ALLOWED;
   }
 
-#ifdef ADMIN_USER_GLOBAL_INSTALLATION_ONLY
-  // Set target uid as tizenglobalapp if admin user's request
-  if (IsAdminUser(uid)) {
-    context_->uid.set(kGlobalUserUid);
-    SetupRequestMode(kGlobalUserUid);
-  }
-#endif
-
   return Status::OK;
 }