From 180b8c584d4ba0ecb9ddded853afd2f4895105d4 Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Mon, 31 Aug 2020 07:05:32 +0200
Subject: [PATCH] no-jira: more user properties variables in lifecycle
 management

---
 .../lifecycle/UserLifecycleManagerImpl.java   | 28 ++++++++++++++++---
 1 file changed, 24 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/olat/user/manager/lifecycle/UserLifecycleManagerImpl.java b/src/main/java/org/olat/user/manager/lifecycle/UserLifecycleManagerImpl.java
index 59f35b3db41..9de869f6a52 100644
--- a/src/main/java/org/olat/user/manager/lifecycle/UserLifecycleManagerImpl.java
+++ b/src/main/java/org/olat/user/manager/lifecycle/UserLifecycleManagerImpl.java
@@ -45,6 +45,7 @@ import org.olat.core.CoreSpringFactory;
 import org.olat.core.commons.persistence.DB;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.Identity;
+import org.olat.core.id.User;
 import org.olat.core.id.UserConstants;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.Util;
@@ -57,6 +58,7 @@ import org.olat.core.util.session.UserSessionManager;
 import org.olat.repository.RepositoryDeletionModule;
 import org.olat.user.UserDataDeletable;
 import org.olat.user.UserLifecycleManager;
+import org.olat.user.UserManager;
 import org.olat.user.UserModule;
 import org.olat.user.ui.admin.lifecycle.UserAdminLifecycleConfigurationController;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -84,6 +86,8 @@ public class UserLifecycleManagerImpl implements UserLifecycleManager {
 	@Autowired
 	private MailManager mailManager;
 	@Autowired
+	private UserManager userManager;
+	@Autowired
 	private BaseSecurity securityManager;
 	@Autowired
 	private UserSessionManager userSessionManager;
@@ -331,7 +335,7 @@ public class UserLifecycleManagerImpl implements UserLifecycleManager {
 		
 		String subject = translator.translate(subjectI18nKey);
 		String body = translator.translate(bodyI18nKey);
-		LifecycleMailTemplate template = new LifecycleMailTemplate(subject, body);
+		LifecycleMailTemplate template = new LifecycleMailTemplate(subject, body, locale);
 		
 		sendUserEmailTo(identity, template, type);
 	}
@@ -356,15 +360,31 @@ public class UserLifecycleManagerImpl implements UserLifecycleManager {
 		return CalendarUtils.startOfDay(date);
 	}
 	
-	private static final class LifecycleMailTemplate extends MailTemplate {
+	private final class LifecycleMailTemplate extends MailTemplate {
+		
+		private final Locale locale;
 		
-		public LifecycleMailTemplate(String subject, String body) {
+		public LifecycleMailTemplate(String subject, String body, Locale locale) {
 			super(subject, body, null);
+			this.locale = locale;
 		}
 
 		@Override
 		public void putVariablesInMailContext(VelocityContext vContext, Identity recipient) {
-			//
+			if(recipient != null) {
+				User user = recipient.getUser();
+				
+				vContext.put("firstname", user.getProperty(UserConstants.FIRSTNAME, null));
+				vContext.put(UserConstants.FIRSTNAME, user.getProperty(UserConstants.FIRSTNAME, null));
+				vContext.put("lastname", user.getProperty(UserConstants.LASTNAME, null));
+				vContext.put(UserConstants.LASTNAME, user.getProperty(UserConstants.LASTNAME, null));
+				String fullName = userManager.getUserDisplayName(recipient);
+				vContext.put("fullname", fullName);
+				vContext.put("fullName", fullName); 
+				vContext.put("mail", userManager.getUserDisplayEmail(user, locale));
+				vContext.put("email", userManager.getUserDisplayEmail(user, locale));
+				vContext.put("username", recipient.getName());
+			}
 		}
 	}
 	
-- 
GitLab