diff --git a/klab.hub/src/main/java/org/integratedmodelling/klab/hub/api/ModifyGroupsTask.java b/klab.hub/src/main/java/org/integratedmodelling/klab/hub/api/ModifyGroupsTask.java index 8db4badd2..6311b4cf4 100644 --- a/klab.hub/src/main/java/org/integratedmodelling/klab/hub/api/ModifyGroupsTask.java +++ b/klab.hub/src/main/java/org/integratedmodelling/klab/hub/api/ModifyGroupsTask.java @@ -65,7 +65,7 @@ public List build(TaskParameters parameters) { } else { throw new ClassCastException(); } - User user = userRepository.findByName(param.username).orElseThrow(); + User user = userRepository.findByNameIgnoreCase(param.username).orElseThrow(); ArrayList ret = new ArrayList(2); Set optIn = new HashSet<>(); diff --git a/klab.hub/src/main/java/org/integratedmodelling/klab/hub/emails/controllers/EmailController.java b/klab.hub/src/main/java/org/integratedmodelling/klab/hub/emails/controllers/EmailController.java index f4f0e86e8..aa4453531 100644 --- a/klab.hub/src/main/java/org/integratedmodelling/klab/hub/emails/controllers/EmailController.java +++ b/klab.hub/src/main/java/org/integratedmodelling/klab/hub/emails/controllers/EmailController.java @@ -137,7 +137,7 @@ private void checkUserName(EmailTemplate emailTemplate) { if (emailTemplate.getAuthorUsername() == null) { emailTemplate.setAuthorUsername(profileService.getCurrentUserProfile(false).getUsername()); } else { - Optional user = userRepository.findByName(emailTemplate.getAuthorUsername()); + Optional user = userRepository.findByNameIgnoreCase(emailTemplate.getAuthorUsername()); if (!user.isPresent()) { throw new ResponseStatusException(HttpStatus.NOT_FOUND, "User not found"); } diff --git a/klab.hub/src/main/java/org/integratedmodelling/klab/hub/repository/UserRepository.java b/klab.hub/src/main/java/org/integratedmodelling/klab/hub/repository/UserRepository.java index 5993ec2fd..5736b5134 100644 --- a/klab.hub/src/main/java/org/integratedmodelling/klab/hub/repository/UserRepository.java +++ b/klab.hub/src/main/java/org/integratedmodelling/klab/hub/repository/UserRepository.java @@ -17,8 +17,10 @@ public interface UserRepository extends ResourceRepository{ Optional findById(String id); - - Optional findByName(String username); // need exactly the username + + default Optional findByName(String username) { + return findByNameIgnoreCase(username); + }; // need exactly the username Optional findByNameIgnoreCase(String username); diff --git a/klab.hub/src/main/java/org/integratedmodelling/klab/hub/security/keycloak/service/KeycloakSecurityService.java b/klab.hub/src/main/java/org/integratedmodelling/klab/hub/security/keycloak/service/KeycloakSecurityService.java index 5528463c6..e804d5413 100644 --- a/klab.hub/src/main/java/org/integratedmodelling/klab/hub/security/keycloak/service/KeycloakSecurityService.java +++ b/klab.hub/src/main/java/org/integratedmodelling/klab/hub/security/keycloak/service/KeycloakSecurityService.java @@ -17,7 +17,7 @@ public boolean isUser(String userName) { String preferredUsername = principal.getKeycloakSecurityContext().getToken().getPreferredUsername(); if (preferredUsername != null) { - return preferredUsername.equals(userName); + return preferredUsername.equals(userName.toLowerCase()); } return false; diff --git a/klab.hub/src/main/java/org/integratedmodelling/klab/hub/users/controllers/UserProfileController.java b/klab.hub/src/main/java/org/integratedmodelling/klab/hub/users/controllers/UserProfileController.java index ae08b9fd7..81444ff28 100644 --- a/klab.hub/src/main/java/org/integratedmodelling/klab/hub/users/controllers/UserProfileController.java +++ b/klab.hub/src/main/java/org/integratedmodelling/klab/hub/users/controllers/UserProfileController.java @@ -182,41 +182,6 @@ public class UserProfileController { } - // TODO keycloak -// @PutMapping(value = API.HUB.USER_BASE_ID, params = API.HUB.PARAMETERS.USER_SET_EMAIL) -// public ResponseEntity< ? > updateUserEmail(@PathVariable String id, -// @RequestParam(API.HUB.PARAMETERS.USER_SET_EMAIL) String setPassword, -// @RequestBody UpdateEmailRequest updateEmailRequest) { -// -// /* Check user and password are correct */ -// try { -// userAuthService.getAuthResponse(updateEmailRequest.getUsername(), updateEmailRequest.getPassword(), -// updateEmailRequest.isRemote()); -// } catch (Exception e) { -// return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body("Incorrect password."); -// } -// -// /* Check token is correct */ -// TokenVerifyEmailClickback token = (TokenVerifyEmailClickback) tokenService.getAndVerifyToken(id, -// updateEmailRequest.getToken(), TokenType.verifyEmail); -// if (token == null) { -// throw new ActivationTokenFailedException("User Verification token failed"); -// } -// -// /* Update user email */ -// try { -// userService.updateUserEmail(id, updateEmailRequest.getEmail()); -// -// tokenService.deleteToken(token.getTokenString()); -// -// } catch (Exception e) { -// return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(e.getMessage()); -// } -// -// JSONObject resp = new JSONObject(); -// return new ResponseEntity(resp, HttpStatus.CREATED); -// } - @GetMapping(value = API.HUB.USER_BASE_ID, params = "remote-login") @PreAuthorize("@securityService.isUser(#id)") public ResponseEntity< ? > getFullUserProfile(@PathVariable String id) { diff --git a/klab.hub/src/main/java/org/integratedmodelling/klab/hub/users/services/UserTagServiceImpl.java b/klab.hub/src/main/java/org/integratedmodelling/klab/hub/users/services/UserTagServiceImpl.java index c95d8f99c..4019b0777 100644 --- a/klab.hub/src/main/java/org/integratedmodelling/klab/hub/users/services/UserTagServiceImpl.java +++ b/klab.hub/src/main/java/org/integratedmodelling/klab/hub/users/services/UserTagServiceImpl.java @@ -22,7 +22,7 @@ public class UserTagServiceImpl implements UserTagService { TagNotificationRepository notificationRepository; private User findUserByName(String username) { - return userRepository.findByName(username).orElseThrow(() -> new BadRequestException("User is not present.")); + return userRepository.findByNameIgnoreCase(username).orElseThrow(() -> new BadRequestException("User is not present.")); } private boolean doesTagExistInTheDatabase(MongoTag tag) {