fixed bug that made registering a new user impossible

This commit is contained in:
delvh 2020-02-09 20:41:29 +01:00
parent aa52cddf6a
commit b6763384fd

View File

@ -92,7 +92,7 @@ public class LoginCredentialProcessor implements ObjectProcessor<LoginCredential
ConnectionManager connectionManager = ConnectionManager.getInstance(); ConnectionManager connectionManager = ConnectionManager.getInstance();
String userIdentifier = credentials.getIdentifier(); String userIdentifier = credentials.getIdentifier();
try { try {
//TODO will need to be replaced with the Identifier once implemented // TODO will need to be replaced with the Identifier once implemented
user = persistenceManager.getUserByName(userIdentifier); user = persistenceManager.getUserByName(userIdentifier);
// Checking if user is already online // Checking if user is already online
if (connectionManager.isOnline(user.getId())) { if (connectionManager.isOnline(user.getId())) {
@ -120,13 +120,16 @@ public class LoginCredentialProcessor implements ObjectProcessor<LoginCredential
* @since Envoy Server Standalone v0.1-alpha * @since Envoy Server Standalone v0.1-alpha
*/ */
private envoy.server.data.User newUser(LoginCredentials credentials, long socketId, ObjectWriteProxy writeProxy) throws IOException { private envoy.server.data.User newUser(LoginCredentials credentials, long socketId, ObjectWriteProxy writeProxy) throws IOException {
// Checking that no user already has this identifier TODO change to identifier once implemented try {
if (PersistenceManager.getPersistenceManager().getUserByName(credentials.getIdentifier()) != null) // Checking that no user already has this identifier
PersistenceManager.getPersistenceManager().getUserByName(credentials.getIdentifier());
// this code only gets executed if this user already exists
writeProxy.write(socketId, new HandshakeRejectionEvent(HandshakeRejectionEvent.USER_EXISTS_ALREADY)); writeProxy.write(socketId, new HandshakeRejectionEvent(HandshakeRejectionEvent.USER_EXISTS_ALREADY));
return null;
} catch (NoResultException e) {
// Creation of a new user // Creation of a new user
envoy.server.data.User user; envoy.server.data.User user;
user = new envoy.server.data.User(); user = new envoy.server.data.User();
//TODO needs to be replaced later on
user.setName(credentials.getIdentifier()); user.setName(credentials.getIdentifier());
user.setLastSeen(new Date()); user.setLastSeen(new Date());
user.setStatus(User.UserStatus.ONLINE); user.setStatus(User.UserStatus.ONLINE);
@ -135,4 +138,5 @@ public class LoginCredentialProcessor implements ObjectProcessor<LoginCredential
persistenceManager.addUser(user); persistenceManager.addUser(user);
return user; return user;
} }
}
} }