This commit is contained in:
@@ -27,4 +27,6 @@ public class RegRequest {
|
|||||||
@NotBlank(message = "Password is required")
|
@NotBlank(message = "Password is required")
|
||||||
@Size(min = 8, message = "Password must be at least 8 characters")
|
@Size(min = 8, message = "Password must be at least 8 characters")
|
||||||
private String password;
|
private String password;
|
||||||
|
|
||||||
|
private String authToken;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,8 +62,10 @@ public class AuthService {
|
|||||||
|
|
||||||
if (accountType == AccountType.B2B && registerRequest.getCompanyName() != null) {
|
if (accountType == AccountType.B2B && registerRequest.getCompanyName() != null) {
|
||||||
createCompanyAccount(registerRequest, user);
|
createCompanyAccount(registerRequest, user);
|
||||||
} else {
|
} else if (accountType == AccountType.B2C && registerRequest.getCompanyName() == null) {
|
||||||
createIndividualAccount(user);
|
createIndividualAccount(user);
|
||||||
|
} else {
|
||||||
|
createIndividualCompanyAccount(registerRequest, user);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (registerRequest.getPhone() != null) {
|
if (registerRequest.getPhone() != null) {
|
||||||
@@ -169,4 +171,25 @@ public class AuthService {
|
|||||||
user.setPersonalTariffInfo(personalTariff);
|
user.setPersonalTariffInfo(personalTariff);
|
||||||
user.grantPermission(Permission.DEFAULT_USER_PERMISSIONS);
|
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