refactored UserService to reuse functionality
This commit is contained in:
parent
28a15296f7
commit
9ba71056ce
@ -90,16 +90,10 @@ public class DefaultUserService extends AbstractTbEntityService implements TbUse
|
|||||||
public UserActivationLink getActivationLink(TenantId tenantId, CustomerId customerId, UserId userId, HttpServletRequest request) throws ThingsboardException {
|
public UserActivationLink getActivationLink(TenantId tenantId, CustomerId customerId, UserId userId, HttpServletRequest request) throws ThingsboardException {
|
||||||
UserCredentials userCredentials = userService.findUserCredentialsByUserId(tenantId, userId);
|
UserCredentials userCredentials = userService.findUserCredentialsByUserId(tenantId, userId);
|
||||||
if (!userCredentials.isEnabled() && userCredentials.getActivateToken() != null) {
|
if (!userCredentials.isEnabled() && userCredentials.getActivateToken() != null) {
|
||||||
long ttl = userCredentials.getActivationTokenTtl();
|
userCredentials = userService.refreshUserActivationToken(tenantId, userCredentials);
|
||||||
if (ttl < TimeUnit.MINUTES.toMillis(15)) { // renew link if less than 15 minutes before expiration
|
|
||||||
userCredentials = userService.generateUserActivationToken(userCredentials);
|
|
||||||
userCredentials = userService.saveUserCredentials(tenantId, userCredentials);
|
|
||||||
ttl = userCredentials.getActivationTokenTtl();
|
|
||||||
log.debug("[{}][{}] Regenerated expired user activation token", tenantId, userId);
|
|
||||||
}
|
|
||||||
String baseUrl = systemSecurityService.getBaseUrl(tenantId, customerId, request);
|
String baseUrl = systemSecurityService.getBaseUrl(tenantId, customerId, request);
|
||||||
String link = baseUrl + "/api/noauth/activate?activateToken=" + userCredentials.getActivateToken();
|
String link = baseUrl + "/api/noauth/activate?activateToken=" + userCredentials.getActivateToken();
|
||||||
return new UserActivationLink(link, ttl);
|
return new UserActivationLink(link, userCredentials.getActivationTokenTtl());
|
||||||
} else {
|
} else {
|
||||||
throw new ThingsboardException("User is already activated!", ThingsboardErrorCode.BAD_REQUEST_PARAMS);
|
throw new ThingsboardException("User is already activated!", ThingsboardErrorCode.BAD_REQUEST_PARAMS);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -63,6 +63,8 @@ public interface UserService extends EntityDaoService {
|
|||||||
|
|
||||||
UserCredentials generateUserActivationToken(UserCredentials userCredentials);
|
UserCredentials generateUserActivationToken(UserCredentials userCredentials);
|
||||||
|
|
||||||
|
UserCredentials refreshUserActivationToken(TenantId tenantId, UserCredentials userCredentials);
|
||||||
|
|
||||||
UserCredentials replaceUserCredentials(TenantId tenantId, UserCredentials userCredentials);
|
UserCredentials replaceUserCredentials(TenantId tenantId, UserCredentials userCredentials);
|
||||||
|
|
||||||
void deleteUser(TenantId tenantId, User user);
|
void deleteUser(TenantId tenantId, User user);
|
||||||
|
|||||||
@ -300,6 +300,16 @@ public class UserServiceImpl extends AbstractCachedEntityService<UserCacheKey, U
|
|||||||
return userCredentials;
|
return userCredentials;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public UserCredentials refreshUserActivationToken(TenantId tenantId, UserCredentials userCredentials) {
|
||||||
|
if (userCredentials.getActivationTokenTtl() < TimeUnit.MINUTES.toMillis(15)) { // renew link if less than 15 minutes before expiration
|
||||||
|
userCredentials = generateUserActivationToken(userCredentials);
|
||||||
|
userCredentials = saveUserCredentials(tenantId, userCredentials);
|
||||||
|
}
|
||||||
|
log.debug("[{}][{}] Regenerated expired user activation token", tenantId, userCredentials.getUserId());
|
||||||
|
return userCredentials;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public UserCredentials replaceUserCredentials(TenantId tenantId, UserCredentials userCredentials) {
|
public UserCredentials replaceUserCredentials(TenantId tenantId, UserCredentials userCredentials) {
|
||||||
log.trace("Executing replaceUserCredentials [{}]", userCredentials);
|
log.trace("Executing replaceUserCredentials [{}]", userCredentials);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user