Remove TODOs 45/274945/1
authorJunghyun Yeon <jungh.yeon@samsung.com>
Thu, 12 May 2022 06:22:15 +0000 (15:22 +0900)
committerJunghyun Yeon <jungh.yeon@samsung.com>
Thu, 12 May 2022 10:20:17 +0000 (19:20 +0900)
Get UID from sender's PkgRequest and send it into each RequestHandler

Change-Id: I751d1c99d04aa74af76ba2f61be434d8991f579d
Signed-off-by: Junghyun Yeon <jungh.yeon@samsung.com>
src/server/request_handler/abstract_request_handler.cc
src/server/request_handler/abstract_request_handler.hh
src/server/request_handler/create_cache_request_handler.cc
src/server/worker_thread.cc

index bc33e01..379ec33 100644 (file)
@@ -25,5 +25,13 @@ void AbstractRequestHandler::PreExec() {
 void AbstractRequestHandler::PostExec() {
 }
 
+void AbstractRequestHandler::SetUID(uid_t uid) {
+  uid_ = uid;
+}
+
+uid_t AbstractRequestHandler::GetUID() {
+  return uid_;
+}
+
 }  // namespace request_handler
 }  // namespace pkgmgr_server
index 8b463d4..83da0fc 100644 (file)
@@ -29,12 +29,15 @@ class EXPORT_API AbstractRequestHandler {
   virtual void PreExec();
   virtual void PostExec();
   void SetPID(pid_t pid);
+  void SetUID(uid_t uid);
 
  protected:
   pid_t GetPID();
+  uid_t GetUID();
 
  private:
   pid_t pid_;
+  uid_t uid_;
 };
 
 }  // namespace request_handler
index 6cebec6..7193ae6 100644 (file)
@@ -72,8 +72,7 @@ CreateCacheRequestHandler::CreateCacheRequestHandler(): scheduler_(gettid()) {
 
 bool CreateCacheRequestHandler::HandleRequest(unsigned char* data, int size,
                                             const std::string& locale) {
-  // TODO(ilho159.kim) need to get logined user id
-  psd::CacheDBHandler db(5001, GetPID());
+  psd::CacheDBHandler db(GetUID(), GetPID());
   db.SetLocale(locale);
 
   int ret = db.Execute();
index 0fae011..34a4e6d 100644 (file)
 #include "worker_thread.hh"
 
 #include <sqlite3.h>
+#include <sys/types.h>
 #include <malloc.h>
 
+#include <tzplatform_config.h>
+
 #include "abstract_parcelable.hh"
 #include "request_handler_factory.hh"
 #include "server/database/db_handle_provider.hh"
 #define SQLITE_ENABLE_MEMORY_MANAGEMENT
 #endif
 
+namespace {
+
+uid_t globaluser_uid = -1;
+
+uid_t GetGlobalUID() {
+  if (globaluser_uid == (uid_t)-1)
+    globaluser_uid = tzplatform_getuid(TZ_SYS_GLOBALAPP_USER);
+
+  return globaluser_uid;
+}
+
+uid_t ConvertUID(uid_t uid) {
+  if (uid < REGULAR_USER)
+    return GetGlobalUID();
+  else
+    return uid;
+}
+
+}  // namespace
+
 namespace pkgmgr_server {
 
 WorkerThread::WorkerThread(unsigned int num) : stop_all_(false) {
@@ -91,7 +114,7 @@ void WorkerThread::Run() {
 
     try {
       handler->PreExec();
-
+      handler->SetUID(ConvertUID(req->GetSenderUID()));
       handler->SetPID(req->GetSenderPID());
       if (!handler->HandleRequest(req->GetData(), req->GetSize(),
           locale_.GetObject()))