Implement lightuser feature
[platform/core/appfw/app-installers.git] / src / common / utils / file_util.cc
index 76ce1de..5f3dda4 100644 (file)
@@ -8,6 +8,8 @@
 #include <unzip.h>
 #include <zlib.h>
 
+#include <sessiond.h>
+
 #include <boost/algorithm/string/classification.hpp>
 #include <boost/algorithm/string/split.hpp>
 #include <boost/filesystem/operations.hpp>
@@ -739,4 +741,21 @@ bf::path RelativePath(const bf::path& from,
   return result;
 }
 
+std::vector<std::string> GetLightUserList(uid_t uid) {
+  int user_count = 0;
+  int *user_list = nullptr;
+  int ret = subsession_get_user_list(
+      static_cast<int>(uid), &user_list, &user_count);
+  if (ret != TIZEN_ERROR_NONE) {
+    LOG(ERROR) << "Failed to get light user list : " << ret;
+    return {};
+  }
+
+  std::vector<std::string> result_list;
+  for (int i = 0; i < user_count; i++)
+    result_list.emplace_back(std::to_string(user_list[i]));
+
+  return result_list;
+}
+
 }  // namespace common_installer