This commit is contained in:
@@ -27,4 +27,6 @@ public class RegRequest {
|
||||
@NotBlank(message = "Password is required")
|
||||
@Size(min = 8, message = "Password must be at least 8 characters")
|
||||
private String password;
|
||||
|
||||
private String authToken;
|
||||
}
|
||||
|
||||
@@ -62,8 +62,10 @@ public class AuthService {
|
||||
|
||||
if (accountType == AccountType.B2B && registerRequest.getCompanyName() != null) {
|
||||
createCompanyAccount(registerRequest, user);
|
||||
} else {
|
||||
} else if (accountType == AccountType.B2C && registerRequest.getCompanyName() == null) {
|
||||
createIndividualAccount(user);
|
||||
} else {
|
||||
createIndividualCompanyAccount(registerRequest, user);
|
||||
}
|
||||
|
||||
if (registerRequest.getPhone() != null) {
|
||||
@@ -169,4 +171,25 @@ public class AuthService {
|
||||
user.setPersonalTariffInfo(personalTariff);
|
||||
user.grantPermission(Permission.DEFAULT_USER_PERMISSIONS);
|
||||
}
|
||||
|
||||
|
||||
private void createIndividualCompanyAccount(RegRequest request, User user) {
|
||||
String authToken = request.getAuthToken();
|
||||
Long userIdByToken = authTokenRepository.findUserIdByToken(authToken);
|
||||
User companyUser = userRepository.findById(userIdByToken).orElseThrow();
|
||||
|
||||
Company company = companyUser.getCompany();
|
||||
TariffInfo tariffInfo = company.getTariffInfo();
|
||||
|
||||
Long maxUsers = tariffInfo.getTariff().getMaxUsers();
|
||||
long currentCountUsers = userRepository.findByCompanyId(company.getId()).size();
|
||||
|
||||
//TODO add exception
|
||||
if (maxUsers < currentCountUsers) {
|
||||
throw new RuntimeException();
|
||||
}
|
||||
|
||||
user.setCompany(companyUser.getCompany());
|
||||
user.grantPermission(Permission.DEFAULT_USER_PERMISSIONS);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user