Add UserRegistry to store all existing users and UserCleanupJob to periodicly remove expired user #189

Merged
lars.winzer merged 12 commits from feat/user-serverside into main 2026-03-15 20:00:59 +01:00
Showing only changes of commit 82582dae83 - Show all commits
@@ -0,0 +1,28 @@
package ch.unibas.dmi.dbis.cs108.casono.server.domain.user;
import ch.unibas.dmi.dbis.cs108.casono.server.network.sessions.SessionId;
public class UserFactory {
private final UserRegistry registry;
public UserFactory(UserRegistry registry) {
this.registry = registry;
}
public User create(String desiredName, SessionId sessionId) {
var result = registry.registerIfAvailable(desiredName, sessionId);
if (result.isPresent()) {
return result.get();
}
int suffix = 1;
while (true) {
String candidate = desiredName + "_" + String.format("%03d", suffix);
result = registry.registerIfAvailable(candidate, sessionId);
if (result.isPresent()) {
return result.get();
}
suffix++;
}
}
}