From 8133cf4623ee1253dada7d42bf85c6101d181cfe Mon Sep 17 00:00:00 2001 From: Dmytro Shvaika Date: Thu, 9 Apr 2020 16:44:18 +0300 Subject: [PATCH 1/3] add sendActivationEmail as request param (default -> true) to activate method in auth controller and login service --- .../thingsboard/server/controller/AuthController.java | 11 +++++++---- ui/src/app/api/login.service.js | 5 ++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/controller/AuthController.java b/application/src/main/java/org/thingsboard/server/controller/AuthController.java index 0cb9b29501..44449eb3d6 100644 --- a/application/src/main/java/org/thingsboard/server/controller/AuthController.java +++ b/application/src/main/java/org/thingsboard/server/controller/AuthController.java @@ -199,6 +199,7 @@ public class AuthController extends BaseController { @ResponseBody public JsonNode activateUser( @RequestBody JsonNode activateRequest, + @RequestParam(required = false, defaultValue = "true") boolean sendActivationMail, HttpServletRequest request) throws ThingsboardException { try { String activateToken = activateRequest.get("activateToken").asText(); @@ -213,10 +214,12 @@ public class AuthController extends BaseController { String loginUrl = String.format("%s/login", baseUrl); String email = user.getEmail(); - try { - mailService.sendAccountActivatedEmail(loginUrl, email); - } catch (Exception e) { - log.info("Unable to send account activation email [{}]", e.getMessage()); + if (sendActivationMail) { + try { + mailService.sendAccountActivatedEmail(loginUrl, email); + } catch (Exception e) { + log.info("Unable to send account activation email [{}]", e.getMessage()); + } } JwtToken accessToken = tokenFactory.createAccessJwtToken(securityUser); diff --git a/ui/src/app/api/login.service.js b/ui/src/app/api/login.service.js index 2322c13b63..0707070ed5 100644 --- a/ui/src/app/api/login.service.js +++ b/ui/src/app/api/login.service.js @@ -85,9 +85,12 @@ function LoginService($http, $q) { return deferred.promise; } - function activate(activateToken, password) { + function activate(activateToken, password, sendActivationMail) { var deferred = $q.defer(); var url = '/api/noauth/activate'; + if(sendActivationMail === true || sendActivationMail === false) { + url += '?sendActivationMail=' + sendActivationMail; + } $http.post(url, {activateToken: activateToken, password: password}).then(function success(response) { deferred.resolve(response); }, function fail() { From 3fafffb33dd8c019923893dc555f2d979c59b40f Mon Sep 17 00:00:00 2001 From: Dmytro Shvaika Date: Fri, 10 Apr 2020 11:57:55 +0300 Subject: [PATCH 2/3] fix activate method for new UI --- ui-ngx/src/app/core/auth/auth.service.ts | 4 ++-- .../modules/login/pages/login/create-password.component.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ui-ngx/src/app/core/auth/auth.service.ts b/ui-ngx/src/app/core/auth/auth.service.ts index 8a3e7d3525..1d4a7dc0d8 100644 --- a/ui-ngx/src/app/core/auth/auth.service.ts +++ b/ui-ngx/src/app/core/auth/auth.service.ts @@ -127,8 +127,8 @@ export class AuthService { {email}, defaultHttpOptions()); } - public activate(activateToken: string, password: string): Observable { - return this.http.post('/api/noauth/activate', {activateToken, password}, defaultHttpOptions()).pipe( + public activate(activateToken: string, password: string, sendActivationMail: boolean): Observable { + return this.http.post('/api/noauth/activate?sendActivationMail=' + sendActivationMail, {activateToken, password}, defaultHttpOptions()).pipe( tap((loginResponse: LoginResponse) => { this.setUserFromJwtToken(loginResponse.token, loginResponse.refreshToken, true); } diff --git a/ui-ngx/src/app/modules/login/pages/login/create-password.component.ts b/ui-ngx/src/app/modules/login/pages/login/create-password.component.ts index 64c6bbab48..47e36c5ce4 100644 --- a/ui-ngx/src/app/modules/login/pages/login/create-password.component.ts +++ b/ui-ngx/src/app/modules/login/pages/login/create-password.component.ts @@ -68,7 +68,7 @@ export class CreatePasswordComponent extends PageComponent implements OnInit, On } else { this.authService.activate( this.activateToken, - this.createPassword.get('password').value).subscribe(); + this.createPassword.get('password').value, true).subscribe(); } } } From b30370328fe05c02f1b87cb6f0f1e30dd7b7d225 Mon Sep 17 00:00:00 2001 From: Igor Kulikov Date: Fri, 10 Apr 2020 15:10:56 +0300 Subject: [PATCH 3/3] Minor fixes --- ui-ngx/src/app/core/auth/auth.service.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ui-ngx/src/app/core/auth/auth.service.ts b/ui-ngx/src/app/core/auth/auth.service.ts index 1d4a7dc0d8..656711bdc0 100644 --- a/ui-ngx/src/app/core/auth/auth.service.ts +++ b/ui-ngx/src/app/core/auth/auth.service.ts @@ -128,7 +128,8 @@ export class AuthService { } public activate(activateToken: string, password: string, sendActivationMail: boolean): Observable { - return this.http.post('/api/noauth/activate?sendActivationMail=' + sendActivationMail, {activateToken, password}, defaultHttpOptions()).pipe( + return this.http.post(`/api/noauth/activate?sendActivationMail=${sendActivationMail}`, + {activateToken, password}, defaultHttpOptions()).pipe( tap((loginResponse: LoginResponse) => { this.setUserFromJwtToken(loginResponse.token, loginResponse.refreshToken, true); }