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 {
 | 
			
		||||
        UserCredentials userCredentials = userService.findUserCredentialsByUserId(tenantId, userId);
 | 
			
		||||
        if (!userCredentials.isEnabled() && userCredentials.getActivateToken() != null) {
 | 
			
		||||
            long ttl = userCredentials.getActivationTokenTtl();
 | 
			
		||||
            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);
 | 
			
		||||
            }
 | 
			
		||||
            userCredentials = userService.refreshUserActivationToken(tenantId, userCredentials);
 | 
			
		||||
            String baseUrl = systemSecurityService.getBaseUrl(tenantId, customerId, request);
 | 
			
		||||
            String link = baseUrl + "/api/noauth/activate?activateToken=" + userCredentials.getActivateToken();
 | 
			
		||||
            return new UserActivationLink(link, ttl);
 | 
			
		||||
            return new UserActivationLink(link, userCredentials.getActivationTokenTtl());
 | 
			
		||||
        } else {
 | 
			
		||||
            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 refreshUserActivationToken(TenantId tenantId, UserCredentials userCredentials);
 | 
			
		||||
 | 
			
		||||
    UserCredentials replaceUserCredentials(TenantId tenantId, UserCredentials userCredentials);
 | 
			
		||||
 | 
			
		||||
    void deleteUser(TenantId tenantId, User user);
 | 
			
		||||
 | 
			
		||||
@ -300,6 +300,16 @@ public class UserServiceImpl extends AbstractCachedEntityService<UserCacheKey, U
 | 
			
		||||
        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
 | 
			
		||||
    public UserCredentials replaceUserCredentials(TenantId tenantId, UserCredentials userCredentials) {
 | 
			
		||||
        log.trace("Executing replaceUserCredentials [{}]", userCredentials);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user