From 08f44f517f09414a0253e9e6a93fe0c00244433f Mon Sep 17 00:00:00 2001
From: Daniel Gerhardt <code@dgerhardt.net>
Date: Sat, 10 Feb 2018 13:31:14 +0100
Subject: [PATCH] Use ID instead of username to map users to rooms

---
 src/main/java/de/thm/arsnova/services/UserService.java    | 2 +-
 .../java/de/thm/arsnova/services/UserServiceImpl.java     | 4 ++--
 .../thm/arsnova/websocket/ArsnovaSocketioServerImpl.java  | 8 ++++----
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/main/java/de/thm/arsnova/services/UserService.java b/src/main/java/de/thm/arsnova/services/UserService.java
index 64c2dc322..703b27cbf 100644
--- a/src/main/java/de/thm/arsnova/services/UserService.java
+++ b/src/main/java/de/thm/arsnova/services/UserService.java
@@ -55,7 +55,7 @@ public interface UserService extends EntityService<UserProfile> {
 
 	Set<UserAuthentication> getUsersByRoomShortId(String roomShortId);
 
-	String getRoomByUsername(String username);
+	String getRoomByUserId(String userId);
 
 	void addUserToRoomBySocketId(UUID socketId, String roomShortId);
 
diff --git a/src/main/java/de/thm/arsnova/services/UserServiceImpl.java b/src/main/java/de/thm/arsnova/services/UserServiceImpl.java
index e689e2ef9..c6b286332 100644
--- a/src/main/java/de/thm/arsnova/services/UserServiceImpl.java
+++ b/src/main/java/de/thm/arsnova/services/UserServiceImpl.java
@@ -297,9 +297,9 @@ public class UserServiceImpl extends DefaultEntityServiceImpl<UserProfile> imple
 	}
 
 	@Override
-	public String getRoomByUsername(final String username) {
+	public String getRoomByUserId(final String userId) {
 		for (final Entry<UserAuthentication, String> entry  : userToRoomId.entrySet()) {
-			if (entry.getKey().getUsername().equals(username)) {
+			if (entry.getKey().getId().equals(userId)) {
 				return entry.getValue();
 			}
 		}
diff --git a/src/main/java/de/thm/arsnova/websocket/ArsnovaSocketioServerImpl.java b/src/main/java/de/thm/arsnova/websocket/ArsnovaSocketioServerImpl.java
index 51390f400..121f1c045 100644
--- a/src/main/java/de/thm/arsnova/websocket/ArsnovaSocketioServerImpl.java
+++ b/src/main/java/de/thm/arsnova/websocket/ArsnovaSocketioServerImpl.java
@@ -143,7 +143,7 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova
 
 					return;
 				}
-				final String roomShortId = userService.getRoomByUsername(u.getUsername());
+				final String roomShortId = userService.getRoomByUserId(u.getId());
 				final de.thm.arsnova.entities.Room room = roomService.getInternal(roomShortId, u);
 
 				if (room.getSettings().isFeedbackLocked()) {
@@ -167,7 +167,7 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova
 
 					return;
 				}
-				final String oldShortRoomId = userService.getRoomByUsername(u.getUsername());
+				final String oldShortRoomId = userService.getRoomByUserId(u.getId());
 				if (null != room.getKeyword() && room.getKeyword().equals(oldShortRoomId)) {
 					return;
 				}
@@ -254,8 +254,8 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova
 						) {
 					return;
 				}
-				final String username = userService.getUserToSocketId(client.getSessionId()).getUsername();
-				final String shortRoomId = userService.getRoomByUsername(username);
+				final String userId = userService.getUserToSocketId(client.getSessionId()).getId();
+				final String shortRoomId = userService.getRoomByUserId(userId);
 				userService.removeUserFromRoomBySocketId(client.getSessionId());
 				userService.removeUserToSocketId(client.getSessionId());
 				if (null != shortRoomId) {
-- 
GitLab