return std::string(pass_ptr->pw_dir);
}
+static std::string get_main_dir_by_user_id(const int uid)
+{
+ return get_home_dir_by_user_id(uid) + "/" + main_dir_name.data();
+}
+
static void change_owner_and_group(std::string_view path, const int session_uid, const int group_id)
{
if (lchown(path.data(), session_uid, group_id) == -1)
}
bool subsession_exists(const int session_uid, const std::string_view subsession_id) try {
- std::string home_dir = get_home_dir_by_user_id(session_uid);
- std::string main_dir = std::move(home_dir) + "/" + main_dir_name.data();
- std::string subsession_dir = std::move(main_dir) + "/" + subsession_id.data();
+ std::string subsession_dir = get_main_dir_by_user_id(session_uid) + "/" + subsession_id.data();
fs::path subsession_path { subsession_dir };
return fs::exists(subsession_path);
}
void add_user_subsession(const int session_uid, const std::string_view subsession_id)
{
try {
- std::string home_dir = get_home_dir_by_user_id(session_uid);
- std::string main_dir = home_dir + "/" + main_dir_name.data();
+ std::string main_dir = get_main_dir_by_user_id(session_uid);
create_main_subdirectory(session_uid, main_dir);
void remove_user_subsession(const int session_uid, const std::string_view subsession_id)
{
try {
- std::string home_dir = get_home_dir_by_user_id(session_uid);
- std::string main_dir = std::move(home_dir) + "/" + main_dir_name.data();
+ std::string main_dir = get_main_dir_by_user_id(session_uid);
std::string subsession_dir = main_dir + "/" + subsession_id.data();
const fs::path subsession_path { std::move(subsession_dir) };
}
}
-static fs::path get_subsession_dir_by_uid(const int session_uid)
-{
- std::string home_dir = get_home_dir_by_user_id(session_uid);
-
- return fs::path {
- std::move(home_dir) + "/" + main_dir_name.data()
- };
-}
-
std::vector<std::string> get_user_list(const int session_uid) try
{
- auto const subsession_path = get_subsession_dir_by_uid(session_uid);
+ const fs::path subsession_path = get_main_dir_by_user_id(session_uid);
std::vector<std::string> subsessions = { SUBSESSION_INITIAL_SID };
/* NB: the `subsession` folder may not exist if no