From 219bcea7599bc953eda873014c8b08a1a63129bc Mon Sep 17 00:00:00 2001
From: Daniel Gerhardt <code@dgerhardt.net>
Date: Sun, 4 Feb 2018 10:59:24 +0100
Subject: [PATCH] Add methods to retrieve non-native users

---
 .../java/de/thm/arsnova/services/UserService.java     |  4 ++++
 .../java/de/thm/arsnova/services/UserServiceImpl.java | 11 +++++++++++
 2 files changed, 15 insertions(+)

diff --git a/src/main/java/de/thm/arsnova/services/UserService.java b/src/main/java/de/thm/arsnova/services/UserService.java
index 8b9f44037..5f2080cd4 100644
--- a/src/main/java/de/thm/arsnova/services/UserService.java
+++ b/src/main/java/de/thm/arsnova/services/UserService.java
@@ -28,6 +28,8 @@ import java.util.UUID;
  * The functionality the user service should provide.
  */
 public interface UserService {
+	UserProfile getCurrentUserProfile();
+
 	UserAuthentication getCurrentUser();
 
 	boolean isAdmin(String username);
@@ -58,6 +60,8 @@ public interface UserService {
 
 	int loggedInUsers();
 
+	UserProfile getByAuthProviderAndLoginId(UserProfile.AuthProvider authProvider, String loginId);
+
 	UserProfile getByUsername(String username);
 
 	UserProfile create(String username, String password);
diff --git a/src/main/java/de/thm/arsnova/services/UserServiceImpl.java b/src/main/java/de/thm/arsnova/services/UserServiceImpl.java
index 31c1916c3..ba74b49cd 100644
--- a/src/main/java/de/thm/arsnova/services/UserServiceImpl.java
+++ b/src/main/java/de/thm/arsnova/services/UserServiceImpl.java
@@ -179,6 +179,12 @@ public class UserServiceImpl implements UserService {
 		userRepository.deleteInactiveUsers(lastActivityBefore);
 	}
 
+	@Override
+	public UserProfile getCurrentUserProfile() {
+		final UserAuthentication authentication = getCurrentUser();
+		return getByAuthProviderAndLoginId(authentication.getAuthProvider(), authentication.getUsername());
+	}
+
 	@Override
 	public UserAuthentication getCurrentUser() {
 		final Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
@@ -355,6 +361,11 @@ public class UserServiceImpl implements UserService {
 		return userToRoomId.size();
 	}
 
+	@Override
+	public UserProfile getByAuthProviderAndLoginId(final UserProfile.AuthProvider authProvider, final String loginId) {
+		return userRepository.findByAuthProviderAndLoginId(authProvider, loginId);
+	}
+
 	@Override
 	public UserProfile getByUsername(String username) {
 		return userRepository.findByAuthProviderAndLoginId(UserProfile.AuthProvider.ARSNOVA, username.toLowerCase());
-- 
GitLab