Extract "get main dir path" into a function 67/318567/2
authorMichal Bloch <m.bloch@samsung.com>
Tue, 14 Jan 2025 14:12:46 +0000 (15:12 +0100)
committerMichal Bloch <m.bloch@samsung.com>
Wed, 22 Jan 2025 11:32:34 +0000 (12:32 +0100)
Change-Id: I2d13339ab99d81bbdb146bf7f6e9c2fde5ecf83a

src/service/src/fs_helpers.cpp

index 64125ff3cbacb3e906cf925afaf4fdc2177412fc..4b0b9333644be8bdd65ddfc588b428bf73f7e635 100644 (file)
@@ -64,6 +64,11 @@ static std::string get_home_dir_by_user_id(const int uid)
        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)
@@ -227,9 +232,7 @@ static void create_main_subdirectory(const int session_uid, std::string_view mai
 }
 
 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);
 }
@@ -278,8 +281,7 @@ static Directory_Class get_directory_type(std::string_view 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);
 
@@ -389,8 +391,7 @@ void add_user_subsession(const int session_uid, const std::string_view subsessio
 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) };
@@ -425,18 +426,9 @@ void remove_user_subsession(const int session_uid, const std::string_view subses
        }
 }
 
-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