diff --git a/charts/account-service/Chart.yaml b/charts/account-service/Chart.yaml index d3c5b5e8d7034b8ed6555b3592f08302a2d27133..c75df32dc22bf3d562301b1c6265eb9042377fc2 100644 --- a/charts/account-service/Chart.yaml +++ b/charts/account-service/Chart.yaml @@ -2,4 +2,4 @@ apiVersion: v1 appVersion: "1.0" description: Deployment of the nynja account service. name: account-service -version: 0.2.1 +version: 0.2.2 diff --git a/releases/dev/account-service.yaml b/releases/dev/account-service.yaml index 30956c077bbcef633e391fbc34d54985b73c06dc..645dd2d59f5b8167166e5c0b135832f8a8a61576 100644 --- a/releases/dev/account-service.yaml +++ b/releases/dev/account-service.yaml @@ -8,7 +8,7 @@ spec: chart: repository: https://nynjagroup.jfrog.io/nynjagroup/helm/ name: account-service - version: 0.2.1 + version: 0.2.2 values: replicaCount: 1 diff --git a/releases/prod/account-service.yaml b/releases/prod/account-service.yaml index 93bed2085a6b3b0208494f2b51cfa03a07a53508..95104baba1c7884476624aaac99e095339da9f5c 100644 --- a/releases/prod/account-service.yaml +++ b/releases/prod/account-service.yaml @@ -8,7 +8,7 @@ spec: chart: repository: https://nynjagroup.jfrog.io/nynjagroup/helm/ name: account-service - version: 0.2.1 + version: 0.2.2 values: replicaCount: 2 diff --git a/releases/staging/account-service.yaml b/releases/staging/account-service.yaml index 60a1b6742bc9aa93b5d4ec1ce11efbf0315c7ac4..17882bd4e0d2813ac2f9299834659089778c1aac 100644 --- a/releases/staging/account-service.yaml +++ b/releases/staging/account-service.yaml @@ -8,7 +8,7 @@ spec: chart: repository: https://nynjagroup.jfrog.io/nynjagroup/helm/ name: account-service - version: 0.2.1 + version: 0.2.2 values: replicaCount: 2 diff --git a/src/main/java/biz/nynja/account/grid/ag/AdminServiceImpl.java b/src/main/java/biz/nynja/account/grid/ag/AdminServiceImpl.java index d86831a30778f5107cfa69c58d92ca193fab96af..76f912728993461b550e4602f1494776c74a5f9e 100644 --- a/src/main/java/biz/nynja/account/grid/ag/AdminServiceImpl.java +++ b/src/main/java/biz/nynja/account/grid/ag/AdminServiceImpl.java @@ -155,7 +155,7 @@ public class AdminServiceImpl extends AdminAccountServiceGrpc.AdminAccountServic .newBuilder().setAccountId(pendingAccountResponse.getPendingAccountDetails().getAccountId()) .setAvatar(request.getAvatar()).setAccountMark(request.getAccountMark()) .setAccountName(request.getAccountName()).setFirstName(request.getFirstName()) - .setLastName(request.getLastName()).setUsername(request.getUsername()) + .setLastName(request.getLastName()).setUsername(request.getUsername().toLowerCase()) .addAllRoles(request.getRolesList()).setAccessStatus(request.getAccessStatus()) .setQrCode(request.getQrCode()).build(); diff --git a/src/main/java/biz/nynja/account/models/AccountBuilder.java b/src/main/java/biz/nynja/account/models/AccountBuilder.java index 1718ac10524ccb808bde0c1c903446188cae0eaf..6d7e3d53a095e8f264a2285d73e8513d695d738a 100644 --- a/src/main/java/biz/nynja/account/models/AccountBuilder.java +++ b/src/main/java/biz/nynja/account/models/AccountBuilder.java @@ -10,6 +10,7 @@ import biz.nynja.account.validation.Validators; import org.apache.commons.lang3.SerializationUtils; import java.time.LocalDate; +import java.util.Locale; import java.util.stream.Collectors; public class AccountBuilder { @@ -26,7 +27,7 @@ public class AccountBuilder { newAccount.setLastName(request.getLastName()); newAccount.setAvatar(request.getAvatar()); newAccount.setAccountName(request.getAccountName()); - newAccount.setUsername(request.getUsername()); + newAccount.setUsername(request.getUsername().toLowerCase()); newAccount.setCreationTimestamp(creationTimestamp); newAccount.setQrCode(request.getQrCode()); newAccount.setRoles(request.getRolesList().stream().map(Enum::toString).collect(Collectors.toSet())); @@ -41,7 +42,7 @@ public class AccountBuilder { updatedAccount.setAccountName(request.getAccountName()); updatedAccount.setFirstName(request.getFirstName()); updatedAccount.setLastName(request.getLastName()); - updatedAccount.setUsername(request.getUsername()); + updatedAccount.setUsername(request.getUsername().toLowerCase()); updatedAccount.setLastUpdateTimestamp(lastUpdateTimestamp); updatedAccount.setAccessStatus(request.getAccessStatus().toString()); if (Validators.util.validateBirthdayIsSet(request.getBirthday())) { diff --git a/src/main/java/biz/nynja/account/models/AccountByUsername.java b/src/main/java/biz/nynja/account/models/AccountByUsername.java index e3c829e2aefb7471417429088fad1498ba85cb81..a59e9b42f6452399a88c4fab5f0bd1e0054b79db 100644 --- a/src/main/java/biz/nynja/account/models/AccountByUsername.java +++ b/src/main/java/biz/nynja/account/models/AccountByUsername.java @@ -334,7 +334,7 @@ public class AccountByUsername { builder.setLastName(getLastName()); } if (getUsername() != null) { - builder.setUsername(getUsername()); + builder.setUsername(getUsername().toLowerCase()); } if (getQrCode() != null) { builder.setQrCode(getQrCode()); diff --git a/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java b/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java index 277f72f0c55c7d9062380783398ec6463efade82..924de5234b3d09fa4a2e5c182b0f42d3ce35c1d1 100644 --- a/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java +++ b/src/main/java/biz/nynja/account/repositories/AccountRepositoryAdditionalImpl.java @@ -511,7 +511,7 @@ public class AccountRepositoryAdditionalImpl implements AccountRepositoryAdditio } public boolean foundExistingNotOwnUsername(UUID accountId, String username) { - AccountByUsername foundAccountByUsername = accountByUsernameRepository.findByUsername(username); + AccountByUsername foundAccountByUsername = accountByUsernameRepository.findByUsername(username.toLowerCase()); if (foundAccountByUsername == null) { return false; } else if (!foundAccountByUsername.getAccountId().equals(accountId)) { diff --git a/src/main/java/biz/nynja/account/services/AccountServiceImpl.java b/src/main/java/biz/nynja/account/services/AccountServiceImpl.java index 63e4580a02a70c981f4f9815736ec7c51c91489e..e443b9e53aef4582ef8b4805c942c0b9fc900226 100644 --- a/src/main/java/biz/nynja/account/services/AccountServiceImpl.java +++ b/src/main/java/biz/nynja/account/services/AccountServiceImpl.java @@ -257,7 +257,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas @Permitted(role = RoleConstants.ACCOUNT_ADMIN) @Permitted(role = RoleConstants.USER) public void getAccountByUsername(GetByUsernameRequest request, StreamObserver responseObserver) { - logger.info("Getting account by username: {}", request.getUsername()); + logger.info("Getting account by username: {}", request.getUsername().toLowerCase()); Validation validation = validateGetByUsernameRequest(request); if (validation.hasErrors()) { logAndBuildGrpcAccountResponse(responseObserver, AccountResponse.newBuilder(), validation.getErrorMessage(), @@ -265,7 +265,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas return; } - Optional accountResponse = accountProvider.getAccountResponseByUsername(request.getUsername()); + Optional accountResponse = accountProvider.getAccountResponseByUsername(request.getUsername().toLowerCase()); if (!accountResponse.isPresent()) { logAndBuildGrpcAccountResponse(responseObserver, AccountResponse.newBuilder(), "Account not found", "", @@ -281,7 +281,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas } AccountResponse response = accountResponse.get(); - logger.info("SUCCESS: Found result for account by username {}. Account Id = {}.", request.getUsername(), + logger.info("SUCCESS: Found result for account by username {}. Account Id = {}.", request.getUsername().toLowerCase(), response.getAccountDetails().getAccountId()); responseObserver.onNext(response); responseObserver.onCompleted(); @@ -290,7 +290,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas @Override @Permitted(role = RoleConstants.ANY) public void searchByUsername(GetByUsernameRequest request, StreamObserver responseObserver) { - logger.info("Searching account by username: {}", request.getUsername()); + logger.info("Searching account by username: {}", request.getUsername().toLowerCase()); Validation validation = validateGetByUsernameRequest(request); if (validation.hasErrors()) { logAndBuildGrpcSearchResponse(responseObserver, SearchResponse.newBuilder(), validation.getErrorMessage(), @@ -298,10 +298,10 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas return; } - AccountByUsername account = accountByUsernameRepository.findByUsername(request.getUsername()); + AccountByUsername account = accountByUsernameRepository.findByUsername(request.getUsername().toLowerCase()); if (account == null) { logAndBuildGrpcSearchResponse(responseObserver, SearchResponse.newBuilder(), - "No matching accounts found for username: ", request.getUsername(), Cause.ACCOUNT_NOT_FOUND, + "No matching accounts found for username: ", request.getUsername().toLowerCase(), Cause.ACCOUNT_NOT_FOUND, "No matching accounts found for give username."); return; } @@ -310,7 +310,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas account.getAvatar(), account.getFirstName(), account.getLastName()); SearchResponse response = SearchResponse.newBuilder().setSearchResultDetails(searchResultDetails).build(); - logger.info("SUCCESS: Found result for account by username {}: \"{}\"", request.getUsername(), response); + logger.info("SUCCESS: Found result for account by username {}: \"{}\"", request.getUsername().toLowerCase(), response); responseObserver.onNext(response); responseObserver.onCompleted(); } @@ -320,9 +320,9 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas if ((request.getUsername() == null) || request.getUsername().isEmpty()) { validation.addError(new ValidationError("Missing username.", Cause.MISSING_USERNAME)); - } else if (!account.isValidUsername(request.getUsername())) { + } else if (!account.isValidUsername(request.getUsername().toLowerCase())) { validation.addError( - new ValidationError("Invalid username. Value: " + request.getUsername(), Cause.INVALID_USERNAME)); + new ValidationError("Invalid username. Value: " + request.getUsername().toLowerCase(), Cause.INVALID_USERNAME)); } return validation; } @@ -498,7 +498,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas StreamObserver responseObserver) { logger.info("Complete pending account creation for account id {} and username {} ...", request.getAccountId(), - request.getUsername()); + request.getUsername().toLowerCase()); logger.debug("Complete pending account creation...: {} ...", request); AccountResponse response = accountCreator.retrieveCompletePendingAccountResponse(request); @@ -547,7 +547,7 @@ public class AccountServiceImpl extends AccountServiceGrpc.AccountServiceImplBas if (request.getUsername() != null && !request.getUsername().trim().isEmpty() && accountRepositoryAdditional .foundExistingNotOwnUsername(UUID.fromString(request.getAccountId()), request.getUsername())) { logAndBuildGrpcAccountResponse(responseObserver, AccountResponse.newBuilder(), - "User name already in use: {}", request.getUsername(), Cause.USERNAME_ALREADY_USED, + "User name already in use: {}", request.getUsername().toLowerCase(), Cause.USERNAME_ALREADY_USED, "Username is already used"); return; } diff --git a/src/main/java/biz/nynja/account/services/decomposition/AccountCreator.java b/src/main/java/biz/nynja/account/services/decomposition/AccountCreator.java index cc374ba508ba1f0684ba803dcc1544f874c9e59a..cdcb8ea11eb4fbb575cc122c8e353a2f7d260d5a 100644 --- a/src/main/java/biz/nynja/account/services/decomposition/AccountCreator.java +++ b/src/main/java/biz/nynja/account/services/decomposition/AccountCreator.java @@ -183,7 +183,7 @@ public class AccountCreator { if (request.getUsername() != null && !request.getUsername().trim().isEmpty() && accountRepositoryAdditional .foundExistingNotOwnUsername(UUID.fromString(request.getAccountId()), request.getUsername())) { return logAndBuildGrpcAccountResponse(AccountResponse.newBuilder(), "User name already in use: {}", - request.getUsername(), Cause.USERNAME_ALREADY_USED, "Username is already used"); + request.getUsername().toLowerCase(), Cause.USERNAME_ALREADY_USED, "Username is already used"); } return null; } diff --git a/src/main/java/biz/nynja/account/validation/Validators.java b/src/main/java/biz/nynja/account/validation/Validators.java index 388e89e88bc15e831f594ea751e2632462d51030..3d589f3d4a0c2c92e1ae9cd877ede5ce344bec93 100644 --- a/src/main/java/biz/nynja/account/validation/Validators.java +++ b/src/main/java/biz/nynja/account/validation/Validators.java @@ -162,7 +162,7 @@ public class Validators { } if (request.getUsername() != null && !request.getUsername().trim().isEmpty() - && !isUsernameValid(request.getUsername())) { + && !isUsernameValid(request.getUsername().toLowerCase())) { validation.addError(new ValidationError("Invalid username", Cause.INVALID_USERNAME)); } @@ -519,7 +519,7 @@ public class Validators { } if (request.getUsername() != null && !request.getUsername().trim().isEmpty() - && !account.isUsernameValid(request.getUsername())) { + && !account.isUsernameValid(request.getUsername().toLowerCase())) { validation.addError(new ValidationError("Invalid username", Cause.INVALID_USERNAME)); }