mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-12-10 13:48:40 +00:00
GetValidUsers function to check users with valid home directories
This commit is contained in:
@@ -285,9 +285,6 @@ public:
|
||||
UserManager& GetUserManager() {
|
||||
return m_userManager;
|
||||
}
|
||||
const UserManager& GetUserManager() const {
|
||||
return m_userManager;
|
||||
}
|
||||
|
||||
private:
|
||||
GeneralSettings m_general{};
|
||||
|
||||
@@ -24,6 +24,7 @@ bool UserManager::AddUser(const User& user) {
|
||||
std::filesystem::create_directory(user_dir, ec);
|
||||
std::filesystem::create_directory(user_dir / "savedata", ec);
|
||||
std::filesystem::create_directory(user_dir / "trophy", ec);
|
||||
std::filesystem::create_directory(user_dir / "trophy/data", ec);
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -86,6 +87,7 @@ std::vector<User> UserManager::CreateDefaultUser() {
|
||||
std::filesystem::create_directory(user_dir);
|
||||
std::filesystem::create_directory(user_dir / "savedata");
|
||||
std::filesystem::create_directory(user_dir / "trophy");
|
||||
std::filesystem::create_directory(user_dir / "trophy/data");
|
||||
}
|
||||
|
||||
return {default_user};
|
||||
@@ -109,4 +111,20 @@ void UserManager::SetControllerPort(u32 user_id, int port) {
|
||||
if (u.user_id == user_id)
|
||||
u.controller_port = port;
|
||||
}
|
||||
}
|
||||
// Returns a list of users that have valid home directories
|
||||
std::vector<User> UserManager::GetValidUsers() const {
|
||||
std::vector<User> result;
|
||||
result.reserve(m_users.user.size());
|
||||
|
||||
const auto home_dir = EmulatorSettings::GetInstance()->GetHomeDir();
|
||||
|
||||
for (const auto& user : m_users.user) {
|
||||
const auto user_dir = home_dir / std::to_string(user.user_id);
|
||||
if (std::filesystem::exists(user_dir)) {
|
||||
result.push_back(user);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
@@ -31,6 +31,7 @@ public:
|
||||
std::vector<User> CreateDefaultUser();
|
||||
bool SetDefaultUser(u32 user_id);
|
||||
void SetControllerPort(u32 user_id, int port);
|
||||
std::vector<User> GetValidUsers() const;
|
||||
|
||||
Users& GetUsers() {
|
||||
return m_users;
|
||||
|
||||
Reference in New Issue
Block a user