diff --git a/modules/axelor-open-suite/axelor-base/src/main/java/com/axelor/apps/base/service/user/UserServiceImpl.java b/modules/axelor-open-suite/axelor-base/src/main/java/com/axelor/apps/base/service/user/UserServiceImpl.java
index 66706506..8d56de3e 100644
--- a/modules/axelor-open-suite/axelor-base/src/main/java/com/axelor/apps/base/service/user/UserServiceImpl.java
+++ b/modules/axelor-open-suite/axelor-base/src/main/java/com/axelor/apps/base/service/user/UserServiceImpl.java
@@ -334,28 +334,54 @@ public class UserServiceImpl implements UserService {
Preconditions.checkNotNull(user, I18n.get("User cannot be null."));
try {
- if (!user.getSendEmailUponPasswordChange()) {
+
+ Boolean sendEmailUponPasswordChange = user.getSendEmailUponPasswordChange();
+ Boolean sendEmailUponAccountCreation = user.getSendEmailUponAccountCreation();
+
+ if(!sendEmailUponPasswordChange && !sendEmailUponAccountCreation){
return;
}
- if (user.equals(AuthUtils.getUser())) {
- logger.debug("User {} changed own password.", user.getCode());
- return;
+ if(sendEmailUponPasswordChange){
+
+ if (user.equals(AuthUtils.getUser())) {
+ logger.debug("User {} changed own password.", user.getCode());
+ return;
+ }
+
+ AppBase appBase = Beans.get(AppBaseService.class).getAppBase();
+ Template template = appBase.getPasswordChangedTemplate();
+
+ if (template == null) {
+ throw new AxelorException(
+ appBase,
+ TraceBackRepository.CATEGORY_NO_VALUE,
+ I18n.get("Template for changed password is missing."));
+ }
+
+ TemplateMessageService templateMessageService = Beans.get(TemplateMessageService.class);
+ templateMessageService.generateAndSendMessage(user, template);
}
- AppBase appBase = Beans.get(AppBaseService.class).getAppBase();
- Template template = appBase.getPasswordChangedTemplate();
+ if(sendEmailUponAccountCreation){
+ if (user.equals(AuthUtils.getUser())) {
+ logger.debug("User {} changed own password.", user.getCode());
+ return;
+ }
- if (template == null) {
- throw new AxelorException(
- appBase,
- TraceBackRepository.CATEGORY_NO_VALUE,
- I18n.get("Template for changed password is missing."));
+ AppBase appBase = Beans.get(AppBaseService.class).getAppBase();
+ Template template = appBase.getAccountCreationTemplate();
+
+ if (template == null) {
+ throw new AxelorException(
+ appBase,
+ TraceBackRepository.CATEGORY_NO_VALUE,
+ I18n.get("Template for account creation is missing."));
+ }
+
+ TemplateMessageService templateMessageService = Beans.get(TemplateMessageService.class);
+ templateMessageService.generateAndSendMessage(user, template);
}
-
- TemplateMessageService templateMessageService = Beans.get(TemplateMessageService.class);
- templateMessageService.generateAndSendMessage(user, template);
-
} finally {
user.setTransientPassword(null);
}
diff --git a/modules/axelor-open-suite/axelor-base/src/main/resources/domains/AppBase.xml b/modules/axelor-open-suite/axelor-base/src/main/resources/domains/AppBase.xml
index f08b206e..dc245a11 100644
--- a/modules/axelor-open-suite/axelor-base/src/main/resources/domains/AppBase.xml
+++ b/modules/axelor-open-suite/axelor-base/src/main/resources/domains/AppBase.xml
@@ -74,8 +74,13 @@
+
-
+
+
+
+
+
@@ -135,6 +140,7 @@
+
diff --git a/modules/axelor-open-suite/axelor-base/src/main/resources/domains/User.xml b/modules/axelor-open-suite/axelor-base/src/main/resources/domains/User.xml
index 518edd78..358b4667 100644
--- a/modules/axelor-open-suite/axelor-base/src/main/resources/domains/User.xml
+++ b/modules/axelor-open-suite/axelor-base/src/main/resources/domains/User.xml
@@ -36,6 +36,7 @@
+
@@ -70,6 +71,7 @@
+