();
@@ -70,15 +70,44 @@ final public class NotificationService {
}
public void resetPassword(@NotNull User user, @NotNull String temporalPassword) {
+ final String mailSubject = "[WiseMapping] Your new password";
+ final String messageTitle = "Your new password has been generated";
+ final String messageBody =
+ "Someone, most likely you, requested a new password for your WiseMapping account.
\n" +
+ "Here is your new password: : " + temporalPassword + "
\n" +
+ "You can login clicking here. We strongly encourage you to change the password as soon as possible.
";
+
+ sendTemplateMail(user, mailSubject, messageTitle, messageBody);
+ }
+
+ public void passwordChanged(@NotNull User user) {
+ final String mailSubject = "[WiseMapping] Your password has been changed";
+ final String messageTitle = "Your password has been changed successfully";
+ final String messageBody =
+ "This is only an notification that your password has been changed. No further action is required.
";
+
+ sendTemplateMail(user, mailSubject, messageTitle, messageBody);
+ }
+
+ public void newAccountCreated(@NotNull User user) {
+ final String mailSubject = "Welcome to WiseMapping !";
+ final String messageTitle = "Your account has been created successfully";
+ final String messageBody =
+ " Thank you for your interest in WiseMapping. If have any feedback or idea, send us an email to feedback@wisemapping.com .We'd love to hear from you.
";
+ sendTemplateMail(user, mailSubject, messageTitle, messageBody);
+ }
+
+ private void sendTemplateMail(@NotNull User user, @NotNull String mailSubject, @NotNull String messageTitle, @NotNull String messageBody) {
+
try {
final Map model = new HashMap();
- model.put("user", user);
- model.put("temporalPassword", temporalPassword);
- model.put("supportEmail", mailer.getSupportEmail());
- model.put("password", temporalPassword);
+ model.put("firstName", user.getFirstname());
+ model.put("messageTitle", messageTitle);
+ model.put("messageBody", messageBody);
model.put("baseUrl", this.baseUrl);
+ model.put("supportEmail", mailer.getSupportEmail());
- mailer.sendEmail(mailer.getServerSenderEmail(), user.getEmail(), "Reset Your WiseMapping Password", model, "passwordRecovery.vm");
+ mailer.sendEmail(mailer.getServerSenderEmail(), user.getEmail(), mailSubject, model, "baseLayout.vm");
} catch (Exception e) {
handleException(e);
}
@@ -100,7 +129,7 @@ final public class NotificationService {
public void activateAccount(@NotNull User user) {
final Map model = new HashMap();
model.put("user", user);
- mailer.sendEmail(mailer.getServerSenderEmail(), user.getEmail(), "WiseMapping : Active account", model, "activationAccountMail.vm");
+ mailer.sendEmail(mailer.getServerSenderEmail(), user.getEmail(), "[WiseMapping] Active account", model, "activationAccountMail.vm");
}
public void sendRegistrationEmail(@NotNull User user) {
diff --git a/wise-webapp/src/main/java/com/wisemapping/mail/SmtpAuthenticator.java b/wise-webapp/src/main/java/com/wisemapping/mail/SmtpAuthenticator.java
deleted file mode 100755
index 9b47dfe9..00000000
--- a/wise-webapp/src/main/java/com/wisemapping/mail/SmtpAuthenticator.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
-* Copyright [2011] [wisemapping]
-*
-* Licensed under WiseMapping Public License, Version 1.0 (the "License").
-* It is basically the Apache License, Version 2.0 (the "License") plus the
-* "powered by wisemapping" text requirement on every single page;
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the license at
-*
-* http://www.wisemapping.org/license
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-package com.wisemapping.mail;
-
-import javax.mail.Authenticator;
-import javax.mail.PasswordAuthentication;
-
-public class SmtpAuthenticator
- extends Authenticator
-{
- private String username;
- private String password;
-
- public SmtpAuthenticator(String username, String password)
- {
- super();
- this.username = username;
- this.password = password;
- }
-
- public PasswordAuthentication getPasswordAuthentication()
- {
- return new PasswordAuthentication(username, password);
- }
-}
\ No newline at end of file
diff --git a/wise-webapp/src/main/java/com/wisemapping/ncontroller/MindmapController.java b/wise-webapp/src/main/java/com/wisemapping/ncontroller/MindmapController.java
index 83b52af5..16888ea6 100644
--- a/wise-webapp/src/main/java/com/wisemapping/ncontroller/MindmapController.java
+++ b/wise-webapp/src/main/java/com/wisemapping/ncontroller/MindmapController.java
@@ -58,6 +58,7 @@ public class MindmapController {
public String showDetails(@PathVariable int id, @NotNull Model model) {
final MindMapBean mindmap = findMindmapBean(id);
model.addAttribute("mindmap", mindmap);
+ model.addAttribute("baseUrl", siteBaseUrl);
return "mindmapDetail";
}
diff --git a/wise-webapp/src/main/java/com/wisemapping/ncontroller/UsersController.java b/wise-webapp/src/main/java/com/wisemapping/ncontroller/UsersController.java
index ce7e0ca4..d757d872 100644
--- a/wise-webapp/src/main/java/com/wisemapping/ncontroller/UsersController.java
+++ b/wise-webapp/src/main/java/com/wisemapping/ncontroller/UsersController.java
@@ -19,9 +19,10 @@
package com.wisemapping.ncontroller;
-import com.wisemapping.controller.Messages;
+import com.wisemapping.validator.Messages;
import com.wisemapping.exceptions.WiseMappingException;
import com.wisemapping.model.User;
+import com.wisemapping.security.Utils;
import com.wisemapping.service.InvalidUserEmailException;
import com.wisemapping.service.UserService;
import com.wisemapping.validator.UserValidator;
@@ -33,6 +34,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -119,6 +121,12 @@ public class UsersController {
return result;
}
+ @RequestMapping(value = "account/settings", method = RequestMethod.GET)
+ public String showUserSettingsPage(@NotNull Model model) {
+ model.addAttribute("user", Utils.getUser());
+ return "accountSettings";
+ }
+
private BindingResult validateRegistrationForm(@NotNull UserBean userBean, @NotNull HttpServletRequest request, @NotNull BindingResult bindingResult) {
final UserValidator userValidator = new UserValidator();
userValidator.setUserService(userService);
diff --git a/wise-webapp/src/main/java/com/wisemapping/rest/AccountController.java b/wise-webapp/src/main/java/com/wisemapping/rest/AccountController.java
new file mode 100644
index 00000000..d3d417f7
--- /dev/null
+++ b/wise-webapp/src/main/java/com/wisemapping/rest/AccountController.java
@@ -0,0 +1,71 @@
+/*
+* Copyright [2011] [wisemapping]
+*
+* Licensed under WiseMapping Public License, Version 1.0 (the "License").
+* It is basically the Apache License, Version 2.0 (the "License") plus the
+* "powered by wisemapping" text requirement on every single page;
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the license at
+*
+* http://www.wisemapping.org/license
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+package com.wisemapping.rest;
+
+import com.wisemapping.model.User;
+import com.wisemapping.security.Utils;
+import com.wisemapping.service.UserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+@Controller
+public class AccountController extends BaseController {
+ @Qualifier("userService")
+ @Autowired
+ private UserService userService;
+
+ @RequestMapping(method = RequestMethod.PUT, value = "account/password", consumes = {"text/plain"})
+ @ResponseStatus(value = HttpStatus.NO_CONTENT)
+ public void changePassword(@RequestBody String password) {
+ if (password == null) {
+ throw new IllegalArgumentException("Password can not be null");
+ }
+
+ final User user = Utils.getUser();
+ user.setPassword(password);
+ userService.changePassword(user);
+ }
+
+ @RequestMapping(method = RequestMethod.PUT, value = "account/firstname", consumes = {"text/plain"})
+ @ResponseStatus(value = HttpStatus.NO_CONTENT)
+ public void changeFirstname(@RequestBody String firstname) {
+ if (firstname == null) {
+ throw new IllegalArgumentException("Firstname can not be null");
+ }
+
+ final User user = Utils.getUser();
+ user.setFirstname(firstname);
+ userService.updateUser(user);
+ }
+
+ @RequestMapping(method = RequestMethod.PUT, value = "account/lastname", consumes = {"text/plain"})
+ @ResponseStatus(value = HttpStatus.NO_CONTENT)
+ public void changeLastName(@RequestBody String lastname) {
+ if (lastname == null) {
+ throw new IllegalArgumentException("lastname can not be null");
+
+ }
+ final User user = Utils.getUser();
+ user.setLastname(lastname);
+ userService.updateUser(user);
+ }
+}
diff --git a/wise-webapp/src/main/java/com/wisemapping/rest/AdminController.java b/wise-webapp/src/main/java/com/wisemapping/rest/AdminController.java
index c4c89c96..d0806806 100644
--- a/wise-webapp/src/main/java/com/wisemapping/rest/AdminController.java
+++ b/wise-webapp/src/main/java/com/wisemapping/rest/AdminController.java
@@ -23,6 +23,7 @@ import com.wisemapping.model.User;
import com.wisemapping.rest.model.RestUser;
import com.wisemapping.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
@@ -33,6 +34,7 @@ import java.io.IOException;
@Controller
public class AdminController extends BaseController {
+ @Qualifier("userService")
@Autowired
private UserService userService;
diff --git a/wise-webapp/src/main/java/com/wisemapping/service/UserServiceImpl.java b/wise-webapp/src/main/java/com/wisemapping/service/UserServiceImpl.java
index 7ce0779f..96dcc460 100755
--- a/wise-webapp/src/main/java/com/wisemapping/service/UserServiceImpl.java
+++ b/wise-webapp/src/main/java/com/wisemapping/service/UserServiceImpl.java
@@ -62,7 +62,7 @@ public class UserServiceImpl
// Generate a random password ...
final String password = randomstring(8, 10);
user.setPassword(password);
- changePassword(user);
+ updateUser(user);
// Send an email with the new temporal password ...
notificationService.resetPassword(user, password);
@@ -119,11 +119,16 @@ public class UserServiceImpl
// Send registration email.
if (emailConfirmEnabled) {
notificationService.sendRegistrationEmail(user);
+ } else {
+ // Send a welcome email ..
+ notificationService.newAccountCreated(user);
}
+
return user;
}
public void changePassword(@NotNull User user) {
+ notificationService.passwordChanged(user);
userManager.updateUser(user);
}
diff --git a/wise-webapp/src/main/java/com/wisemapping/validator/ChangePasswordValidator.java b/wise-webapp/src/main/java/com/wisemapping/validator/ChangePasswordValidator.java
deleted file mode 100644
index 92e53fd9..00000000
--- a/wise-webapp/src/main/java/com/wisemapping/validator/ChangePasswordValidator.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
-* Copyright [2011] [wisemapping]
-*
-* Licensed under WiseMapping Public License, Version 1.0 (the "License").
-* It is basically the Apache License, Version 2.0 (the "License") plus the
-* "powered by wisemapping" text requirement on every single page;
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the license at
-*
-* http://www.wisemapping.org/license
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-package com.wisemapping.validator;
-
-import org.springframework.validation.Validator;
-import org.springframework.validation.Errors;
-import org.springframework.validation.ValidationUtils;
-import com.wisemapping.view.ChangePasswordBean;
-import com.wisemapping.model.Constants;
-
-public class ChangePasswordValidator
- implements Validator {
-
- public boolean supports(final Class clazz) {
- return clazz.equals(ChangePasswordBean.class);
- }
-
- public void validate(Object obj, Errors errors) {
- ChangePasswordBean bean = (ChangePasswordBean) obj;
-
- if (bean == null) {
- errors.rejectValue("changePassword", "error.not-specified", null, "Value required.");
- } else {
-
- ValidationUtils.rejectIfEmptyOrWhitespace(errors, "password", "required", "Field is required.");
- ValidationUtils.rejectIfEmptyOrWhitespace(errors, "retryPassword", "required", "Field is required.");
- ValidatorUtils.rejectIfExceeded(errors,
- "password",
- "The password must have less than "+ Constants.MAX_USER_PASSWORD_LENGTH + " characters.",
- bean.getPassword(),
- Constants.MAX_USER_PASSWORD_LENGTH);
- ValidatorUtils.rejectIfExceeded(errors,
- "retryPassword",
- "The retryPassword must have less than "+ Constants.MAX_USER_PASSWORD_LENGTH + " characters.",
- bean.getRetryPassword(),
- Constants.MAX_USER_PASSWORD_LENGTH);
- final String password = bean.getPassword();
- if (password != null && !password.equals(bean.getRetryPassword())) {
- errors.rejectValue("password", "Password mismatch", "Your password entries did not match");
- }
- }
- }
-}
diff --git a/wise-webapp/src/main/java/com/wisemapping/validator/EditProfileValidator.java b/wise-webapp/src/main/java/com/wisemapping/validator/EditProfileValidator.java
deleted file mode 100755
index 42100fe4..00000000
--- a/wise-webapp/src/main/java/com/wisemapping/validator/EditProfileValidator.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
-* Copyright [2011] [wisemapping]
-*
-* Licensed under WiseMapping Public License, Version 1.0 (the "License").
-* It is basically the Apache License, Version 2.0 (the "License") plus the
-* "powered by wisemapping" text requirement on every single page;
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the license at
-*
-* http://www.wisemapping.org/license
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-package com.wisemapping.validator;
-
-import com.wisemapping.view.UserBean;
-import com.wisemapping.controller.Messages;
-import com.wisemapping.service.UserService;
-import com.wisemapping.model.User;
-import com.wisemapping.model.Constants;
-import org.springframework.validation.Errors;
-import org.springframework.validation.ValidationUtils;
-import org.springframework.validation.Validator;
-
-public class EditProfileValidator implements Validator {
-
- private UserService userService;
-
- public boolean supports(final Class clazz) {
- return clazz.equals(UserBean.class);
- }
-
- public void validate(Object obj, Errors errors) {
- UserBean user = (UserBean) obj;
- if (user == null) {
- errors.rejectValue("user", "error.not-specified", null, "Value required.");
- } else {
-
- ValidationUtils.rejectIfEmptyOrWhitespace(errors, "firstname", "required", "Field is required.");
- ValidationUtils.rejectIfEmptyOrWhitespace(errors, "lastname", "required", "Field is required.");
- ValidatorUtils.rejectIfExceeded(errors,
- "firstname",
- "The firstname must have less than "+ Constants.MAX_USER_FIRSTNAME_LENGTH + " characters.",
- user.getFirstname(),
- Constants.MAX_USER_FIRSTNAME_LENGTH);
- ValidatorUtils.rejectIfExceeded(errors,
- "lastname",
- "The lastname must have less than "+ Constants.MAX_USER_LASTNAME_LENGTH + " characters.",
- user.getLastname(),
- Constants.MAX_USER_LASTNAME_LENGTH);
- final String email = user.getEmail();
- boolean isValid = Utils.isValidateEmailAddress(email);
- if (isValid) {
- final User oldUser = userService.getUserBy(email);
- if (oldUser != null && user.getId() != oldUser.getId()) {
- errors.rejectValue("email", Messages.EMAIL_ALREADY_EXIST);
- }
- } else {
- Utils.validateEmailAddress(email, errors);
- }
- }
- }
-
- public void setUserService(UserService userService) {
- this.userService = userService;
- }
-}
\ No newline at end of file
diff --git a/wise-webapp/src/main/java/com/wisemapping/validator/MapInfoValidator.java b/wise-webapp/src/main/java/com/wisemapping/validator/MapInfoValidator.java
index af9ead29..faef8e42 100755
--- a/wise-webapp/src/main/java/com/wisemapping/validator/MapInfoValidator.java
+++ b/wise-webapp/src/main/java/com/wisemapping/validator/MapInfoValidator.java
@@ -18,7 +18,6 @@
package com.wisemapping.validator;
-import com.wisemapping.controller.Messages;
import com.wisemapping.model.MindMap;
import com.wisemapping.model.User;
import com.wisemapping.model.Constants;
diff --git a/wise-webapp/src/main/java/com/wisemapping/controller/Messages.java b/wise-webapp/src/main/java/com/wisemapping/validator/Messages.java
similarity index 94%
rename from wise-webapp/src/main/java/com/wisemapping/controller/Messages.java
rename to wise-webapp/src/main/java/com/wisemapping/validator/Messages.java
index e1a2bbe4..07ce50e1 100644
--- a/wise-webapp/src/main/java/com/wisemapping/controller/Messages.java
+++ b/wise-webapp/src/main/java/com/wisemapping/validator/Messages.java
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package com.wisemapping.controller;
+package com.wisemapping.validator;
public interface Messages {
String EMAIL_ALREADY_EXIST = "EMAIL_ALREADY_EXIST";
diff --git a/wise-webapp/src/main/java/com/wisemapping/validator/TagValidator.java b/wise-webapp/src/main/java/com/wisemapping/validator/TagValidator.java
deleted file mode 100755
index 0e385c7c..00000000
--- a/wise-webapp/src/main/java/com/wisemapping/validator/TagValidator.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
-* Copyright [2011] [wisemapping]
-*
-* Licensed under WiseMapping Public License, Version 1.0 (the "License").
-* It is basically the Apache License, Version 2.0 (the "License") plus the
-* "powered by wisemapping" text requirement on every single page;
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the license at
-*
-* http://www.wisemapping.org/license
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-package com.wisemapping.validator;
-
-import com.wisemapping.model.Constants;
-import com.wisemapping.view.TagBean;
-import org.springframework.validation.Errors;
-import org.springframework.validation.Validator;
-
-public class TagValidator implements Validator {
-
- public boolean supports(final Class clazz) {
- return clazz.equals(TagBean.class);
- }
-
- public void validate(Object obj, Errors errors) {
- TagBean tag = (TagBean) obj;
- if (tag == null) {
- errors.rejectValue("user", "error.not-specified");
- } else {
-
- // Validate email address ...
- final String tags = tag.getMindmapTags();
- ValidatorUtils.rejectIfExceeded(errors,
- "mindmapTags",
- "The tags must have less than "+ Constants.MAX_TAGS_LENGTH + " characters.",
- tags,
- Constants.MAX_TAGS_LENGTH);
- }
- }
-}
diff --git a/wise-webapp/src/main/java/com/wisemapping/validator/UserValidator.java b/wise-webapp/src/main/java/com/wisemapping/validator/UserValidator.java
index e3919ba4..93b6a6f1 100644
--- a/wise-webapp/src/main/java/com/wisemapping/validator/UserValidator.java
+++ b/wise-webapp/src/main/java/com/wisemapping/validator/UserValidator.java
@@ -18,7 +18,6 @@
package com.wisemapping.validator;
-import com.wisemapping.controller.Messages;
import com.wisemapping.service.UserService;
import com.wisemapping.view.UserBean;
import com.wisemapping.model.Constants;
diff --git a/wise-webapp/src/main/java/com/wisemapping/validator/Utils.java b/wise-webapp/src/main/java/com/wisemapping/validator/Utils.java
index 25d3d58d..1b2ca15b 100644
--- a/wise-webapp/src/main/java/com/wisemapping/validator/Utils.java
+++ b/wise-webapp/src/main/java/com/wisemapping/validator/Utils.java
@@ -24,8 +24,6 @@ import org.springframework.validation.ValidationUtils;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
-import com.wisemapping.controller.Messages;
-
final public class Utils {
//Set the email emailPattern string
diff --git a/wise-webapp/src/main/java/com/wisemapping/view/TagBean.java b/wise-webapp/src/main/java/com/wisemapping/view/TagBean.java
deleted file mode 100755
index dfe6b75b..00000000
--- a/wise-webapp/src/main/java/com/wisemapping/view/TagBean.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
-* Copyright [2011] [wisemapping]
-*
-* Licensed under WiseMapping Public License, Version 1.0 (the "License").
-* It is basically the Apache License, Version 2.0 (the "License") plus the
-* "powered by wisemapping" text requirement on every single page;
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the license at
-*
-* http://www.wisemapping.org/license
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-package com.wisemapping.view;
-
-import java.util.Set;
-
-public class TagBean
-{
- private Set userTags;
- private String mindmapTitle;
- private int mindmapId;
- private String mindmapTags;
-
- public TagBean(){}
-
- public Set getUserTags() {
- return userTags;
- }
-
- public void setUserTags(Set tags) {
- this.userTags = tags;
- }
-
- public String getMindmapTags() {
- return mindmapTags;
- }
-
- public void setMindmapTags(String tags) {
- this.mindmapTags = tags;
- }
-
- public String getMindmapTitle()
- {
- return mindmapTitle;
- }
-
- public void setMindmapTitle(String title)
- {
- this.mindmapTitle = title;
- }
-
- public int getMindmapId()
- {
- return mindmapId;
- }
-
- public void setMindmapId(int id)
- {
- this.mindmapId = id;
- }
-}
diff --git a/wise-webapp/src/main/webapp/WEB-INF/classes/mail/passwordRecovery.vm b/wise-webapp/src/main/resources/mail/baseLayout.vm
similarity index 68%
rename from wise-webapp/src/main/webapp/WEB-INF/classes/mail/passwordRecovery.vm
rename to wise-webapp/src/main/resources/mail/baseLayout.vm
index ae9028f7..d8d51ec3 100644
--- a/wise-webapp/src/main/webapp/WEB-INF/classes/mail/passwordRecovery.vm
+++ b/wise-webapp/src/main/resources/mail/baseLayout.vm
@@ -10,28 +10,32 @@
+ alt="WiseMapping"/>
- Your password has been reset
+ ${messageTitle}
|
-
A temporal password has been generated for you account.
+ Hi ${firstName}:
+
+ ${messageBody}
+
-
New Password: ${password}
-
-
You can login clicking here.We strongly encourage you to change the password as soon as possible.
+
Regards,
+ The WiseMapping Team
+
Important: Do not reply this email. If
- you need further help or have any concerns regarding your account, contact us to here.
+ you need further help or believe you have received this email in error, contact us to here.