From a2d9899a4698faf22188e5a89595b33ca739f2e9 Mon Sep 17 00:00:00 2001 From: Andrew Volostnykh Date: Mon, 1 Mar 2021 15:15:24 +0200 Subject: [PATCH] Null activation link and absent expected field in additional info fixed --- .../server/controller/UserController.java | 20 +++++++++++++++---- .../modules/home/pages/user/user.component.ts | 1 - 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/controller/UserController.java b/application/src/main/java/org/thingsboard/server/controller/UserController.java index 5c6e7e9fe8..e1c3328176 100644 --- a/application/src/main/java/org/thingsboard/server/controller/UserController.java +++ b/application/src/main/java/org/thingsboard/server/controller/UserController.java @@ -94,12 +94,24 @@ public class UserController extends BaseController { processDashboardIdFromAdditionalInfo((ObjectNode) user.getAdditionalInfo(), DEFAULT_DASHBOARD); processDashboardIdFromAdditionalInfo((ObjectNode) user.getAdditionalInfo(), HOME_DASHBOARD); } + UserCredentials userCredentials = userService.findUserCredentialsByUserId(user.getTenantId(), user.getId()); + if(userCredentials.isEnabled()) { + addUserCredentialsEnabled((ObjectNode) user.getAdditionalInfo()); + } return user; } catch (Exception e) { throw handleException(e); } } + private void addUserCredentialsEnabled(ObjectNode additionalInfo) { + if(!additionalInfo.isNull()) { + if(!additionalInfo.has("userCredentialsEnabled")) { + additionalInfo.put("userCredentialsEnabled", true); + } + } + } + @PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')") @RequestMapping(value = "/user/tokenAccessEnabled", method = RequestMethod.GET) @ResponseBody @@ -193,13 +205,13 @@ public class UserController extends BaseController { user.getId(), user); UserCredentials userCredentials = userService.findUserCredentialsByUserId(getCurrentUser().getTenantId(), user.getId()); - if (!userCredentials.isEnabled()) { + if (!userCredentials.isEnabled() && userCredentials.getActivateToken() != null) { String baseUrl = systemSecurityService.getBaseUrl(getTenantId(), getCurrentUser().getCustomerId(), request); String activateUrl = String.format(ACTIVATE_URL_PATTERN, baseUrl, userCredentials.getActivateToken()); mailService.sendActivationEmail(activateUrl, email); } else { - throw new ThingsboardException("User is already active!", ThingsboardErrorCode.BAD_REQUEST_PARAMS); + throw new ThingsboardException("User is already activated!", ThingsboardErrorCode.BAD_REQUEST_PARAMS); } } catch (Exception e) { throw handleException(e); @@ -218,13 +230,13 @@ public class UserController extends BaseController { User user = checkUserId(userId, Operation.READ); SecurityUser authUser = getCurrentUser(); UserCredentials userCredentials = userService.findUserCredentialsByUserId(authUser.getTenantId(), user.getId()); - if (!userCredentials.isEnabled()) { + if (!userCredentials.isEnabled() && userCredentials.getActivateToken() != null) { String baseUrl = systemSecurityService.getBaseUrl(getTenantId(), getCurrentUser().getCustomerId(), request); String activateUrl = String.format(ACTIVATE_URL_PATTERN, baseUrl, userCredentials.getActivateToken()); return activateUrl; } else { - throw new ThingsboardException("User is already active!", ThingsboardErrorCode.BAD_REQUEST_PARAMS); + throw new ThingsboardException("User is already activated!", ThingsboardErrorCode.BAD_REQUEST_PARAMS); } } catch (Exception e) { throw handleException(e); diff --git a/ui-ngx/src/app/modules/home/pages/user/user.component.ts b/ui-ngx/src/app/modules/home/pages/user/user.component.ts index 05e7124c46..1610eeaba8 100644 --- a/ui-ngx/src/app/modules/home/pages/user/user.component.ts +++ b/ui-ngx/src/app/modules/home/pages/user/user.component.ts @@ -61,7 +61,6 @@ export class UserComponent extends EntityComponent { isUserCredentialPresent(): boolean { return !(!this.entity || !this.entity.additionalInfo || isUndefined(this.entity.additionalInfo.userCredentialsEnabled)); - } buildForm(entity: User): FormGroup {