Remove boost dependency
[platform/core/appfw/app-installers.git] / src / common / utils / user_util.h
1 // Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
2 // Use of this source code is governed by an apache-2.0 license that can be
3 // found in the LICENSE file.
4
5 #ifndef COMMON_UTILS_USER_UTIL_H_
6 #define COMMON_UTILS_USER_UTIL_H_
7
8 #include <sys/types.h>
9
10 #include <filesystem>
11 #include <optional>
12 #include <string>
13 #include <tuple>
14 #include <vector>
15
16 namespace fs = std::filesystem;
17
18 namespace common_installer {
19
20 typedef std::vector<std::tuple<uid_t, gid_t, fs::path>> UserList;
21
22 UserList GetUserList();
23 std::optional<bool> IsAdminUser(uid_t uid);
24 std::optional<gid_t> GetGidByUid(uid_t uid);
25 std::string GetGroupNameByGid(gid_t gid);
26 std::string GetUsernameByUid(uid_t user);
27 std::optional<uid_t> GetUidByUserName(const char* username);
28 std::optional<gid_t> GetGidByGroupName(const char* groupname);
29 std::vector<std::string> GetLightUserList(uid_t uid);
30
31 }  // namespace common_installer
32
33 #endif  // COMMON_UTILS_USER_UTIL_H_