From cf81f0fd619845f25355b52e648529bc5bcadde6 Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Mon, 31 Aug 2020 07:16:30 +0200
Subject: [PATCH] OO-4882: show the login name in specific mail templates

---
 .../org/olat/course/nodes/co/CourseMailTemplate.java     | 9 ++++++++-
 .../modules/reminder/manager/ReminderServiceImpl.java    | 3 +++
 .../user/manager/lifecycle/UserLifecycleManagerImpl.java | 7 ++++++-
 3 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/olat/course/nodes/co/CourseMailTemplate.java b/src/main/java/org/olat/course/nodes/co/CourseMailTemplate.java
index e1bc6a0432e..d13f6f942fa 100644
--- a/src/main/java/org/olat/course/nodes/co/CourseMailTemplate.java
+++ b/src/main/java/org/olat/course/nodes/co/CourseMailTemplate.java
@@ -22,11 +22,13 @@ package org.olat.course.nodes.co;
 import java.util.Locale;
 
 import org.apache.velocity.VelocityContext;
+import org.olat.basesecurity.BaseSecurity;
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.helpers.Settings;
 import org.olat.core.id.Identity;
 import org.olat.core.id.User;
 import org.olat.core.id.UserConstants;
+import org.olat.core.util.StringHelper;
 import org.olat.core.util.mail.MailTemplate;
 import org.olat.repository.RepositoryEntry;
 import org.olat.user.UserManager;
@@ -61,6 +63,7 @@ public class CourseMailTemplate extends MailTemplate {
 		if(sender != null) {
 			User user = sender.getUser();
 			UserManager userManager = CoreSpringFactory.getImpl(UserManager.class);
+			BaseSecurity securityManager = CoreSpringFactory.getImpl(BaseSecurity.class);
 			
 			vContext.put("firstname", user.getProperty(UserConstants.FIRSTNAME, null));
 			vContext.put(UserConstants.FIRSTNAME, user.getProperty(UserConstants.FIRSTNAME, null));
@@ -71,7 +74,11 @@ public class CourseMailTemplate extends MailTemplate {
 			vContext.put("fullName", fullName); 
 			vContext.put("mail", userManager.getUserDisplayEmail(user, locale));
 			vContext.put("email", userManager.getUserDisplayEmail(user, locale));
-			vContext.put("username", sender.getName());
+			String loginName = securityManager.findAuthenticationName(recipient);
+			if(!StringHelper.containsNonWhitespace(loginName)) {
+				loginName = recipient.getName();
+			}
+			vContext.put("username", loginName);
 		}
 	}
 }
diff --git a/src/main/java/org/olat/modules/reminder/manager/ReminderServiceImpl.java b/src/main/java/org/olat/modules/reminder/manager/ReminderServiceImpl.java
index 45a9b5bc4e8..2616bd58ccf 100644
--- a/src/main/java/org/olat/modules/reminder/manager/ReminderServiceImpl.java
+++ b/src/main/java/org/olat/modules/reminder/manager/ReminderServiceImpl.java
@@ -298,6 +298,9 @@ public class ReminderServiceImpl implements ReminderService {
 			vContext.put("mail", email);
 			vContext.put("email", email);
 			String loginName = securityManager.findAuthenticationName(recipient);
+			if(!StringHelper.containsNonWhitespace(loginName)) {
+				loginName = recipient.getName();
+			}
 			vContext.put("username", loginName);
 			// Put variables from greater context
 			if(entry != null) {
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 9de869f6a52..765e70c0c60 100644
--- a/src/main/java/org/olat/user/manager/lifecycle/UserLifecycleManagerImpl.java
+++ b/src/main/java/org/olat/user/manager/lifecycle/UserLifecycleManagerImpl.java
@@ -48,6 +48,7 @@ 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.StringHelper;
 import org.olat.core.util.Util;
 import org.olat.core.util.i18n.I18nManager;
 import org.olat.core.util.mail.MailBundle;
@@ -383,7 +384,11 @@ public class UserLifecycleManagerImpl implements UserLifecycleManager {
 				vContext.put("fullName", fullName); 
 				vContext.put("mail", userManager.getUserDisplayEmail(user, locale));
 				vContext.put("email", userManager.getUserDisplayEmail(user, locale));
-				vContext.put("username", recipient.getName());
+				String loginName = securityManager.findAuthenticationName(recipient);
+				if(!StringHelper.containsNonWhitespace(loginName)) {
+					loginName = recipient.getName();
+				}
+				vContext.put("username", loginName);
 			}
 		}
 	}
-- 
GitLab