From 3573a2fac7c4426a6930e340a46eecf35fe59f16 Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Mon, 9 Sep 2019 18:55:37 +0200
Subject: [PATCH] OO-4233: don't use the mascareded phone number to send sms

---
 .../olat/admin/user/imp/TransientIdentity.java   |  5 +++++
 .../org/olat/admin/user/imp/UpdateIdentity.java  |  5 +++++
 .../olat/basesecurity/model/QueryUserHelper.java |  5 +++++
 .../sms/manager/SimpleMessageServiceImpl.java    |  5 ++---
 src/main/java/org/olat/core/id/User.java         |  6 ++++++
 .../olat/core/util/mail/ui/EMailIdentity.java    |  5 +++++
 .../olat/course/run/preview/PreviewIdentity.java | 16 ++++++----------
 src/main/java/org/olat/user/UserImpl.java        |  8 ++++++++
 8 files changed, 42 insertions(+), 13 deletions(-)

diff --git a/src/main/java/org/olat/admin/user/imp/TransientIdentity.java b/src/main/java/org/olat/admin/user/imp/TransientIdentity.java
index b1ab83724b6..4a17c2954c3 100644
--- a/src/main/java/org/olat/admin/user/imp/TransientIdentity.java
+++ b/src/main/java/org/olat/admin/user/imp/TransientIdentity.java
@@ -90,6 +90,11 @@ public class TransientIdentity implements Identity, User {
 		return properties.get(UserConstants.INSTITUTIONALEMAIL);
 	}
 
+	@Override
+	public String getSmsTelMobile() {
+		return properties.get(UserConstants.SMSTELMOBILE);
+	}
+
 	public String getPassword() {
 		return password;
 	}
diff --git a/src/main/java/org/olat/admin/user/imp/UpdateIdentity.java b/src/main/java/org/olat/admin/user/imp/UpdateIdentity.java
index 4ebb3ca58ec..3de1d29c910 100644
--- a/src/main/java/org/olat/admin/user/imp/UpdateIdentity.java
+++ b/src/main/java/org/olat/admin/user/imp/UpdateIdentity.java
@@ -173,6 +173,11 @@ public class UpdateIdentity implements Identity {
 			return updatedProperties.get(UserConstants.INSTITUTIONALEMAIL);
 		}
 
+		@Override
+		public String getSmsTelMobile() {
+			return updatedProperties.get(UserConstants.SMSTELMOBILE);
+		}
+
 		@Override
 		public Date getCreationDate() {
 			return user.getCreationDate();
diff --git a/src/main/java/org/olat/basesecurity/model/QueryUserHelper.java b/src/main/java/org/olat/basesecurity/model/QueryUserHelper.java
index 42475c06f86..6bce3b909d7 100644
--- a/src/main/java/org/olat/basesecurity/model/QueryUserHelper.java
+++ b/src/main/java/org/olat/basesecurity/model/QueryUserHelper.java
@@ -75,6 +75,11 @@ public class QueryUserHelper implements User {
 		return null;
 	}
 
+	@Override
+	public String getSmsTelMobile() {
+		return null;
+	}
+
 	@Override
 	public Preferences getPreferences() {
 		return null;
diff --git a/src/main/java/org/olat/core/commons/services/sms/manager/SimpleMessageServiceImpl.java b/src/main/java/org/olat/core/commons/services/sms/manager/SimpleMessageServiceImpl.java
index fbf629be65a..5900eb518fc 100644
--- a/src/main/java/org/olat/core/commons/services/sms/manager/SimpleMessageServiceImpl.java
+++ b/src/main/java/org/olat/core/commons/services/sms/manager/SimpleMessageServiceImpl.java
@@ -23,6 +23,7 @@ package org.olat.core.commons.services.sms.manager;
 import java.util.List;
 import java.util.Random;
 
+import org.apache.logging.log4j.Logger;
 import org.olat.core.commons.services.sms.MessageLog;
 import org.olat.core.commons.services.sms.MessagesSPI;
 import org.olat.core.commons.services.sms.SimpleMessageException;
@@ -35,8 +36,6 @@ import org.olat.core.gui.components.form.flexible.impl.Form;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.helpers.Settings;
 import org.olat.core.id.Identity;
-import org.olat.core.id.UserConstants;
-import org.apache.logging.log4j.Logger;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.StringHelper;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -99,7 +98,7 @@ public class SimpleMessageServiceImpl implements SimpleMessageService {
 
 	@Override
 	public void sendMessage(String text, Identity recipient) throws SimpleMessageException {
-		String telNumber = recipient.getUser().getProperty(UserConstants.SMSTELMOBILE, null);
+		String telNumber = recipient.getUser().getSmsTelMobile();
 		sendMessage(text, telNumber, recipient);
 	}
 
diff --git a/src/main/java/org/olat/core/id/User.java b/src/main/java/org/olat/core/id/User.java
index a91134f158d..74c476e402b 100644
--- a/src/main/java/org/olat/core/id/User.java
+++ b/src/main/java/org/olat/core/id/User.java
@@ -51,6 +51,12 @@ public interface User extends CreateInfo, Persistable {
 	public String getEmail();
 	
 	public String getInstitutionalEmail();
+	
+	/**
+	 * 
+	 * @return The real value, don't show it on any user interface
+	 */
+	public String getSmsTelMobile();
 
 	/**
 	 * Get the users prefereces object
diff --git a/src/main/java/org/olat/core/util/mail/ui/EMailIdentity.java b/src/main/java/org/olat/core/util/mail/ui/EMailIdentity.java
index 9f23e11df34..23ac3ff0e0f 100644
--- a/src/main/java/org/olat/core/util/mail/ui/EMailIdentity.java
+++ b/src/main/java/org/olat/core/util/mail/ui/EMailIdentity.java
@@ -126,6 +126,11 @@ public class EMailIdentity implements Identity {
 			return data.get(UserConstants.INSTITUTIONALEMAIL);
 		}
 
+		@Override
+		public String getSmsTelMobile() {
+			return data.get(UserConstants.SMSTELMOBILE);
+		}
+
 		@Override
 		public Date getLastModified() {
 			return null;
diff --git a/src/main/java/org/olat/course/run/preview/PreviewIdentity.java b/src/main/java/org/olat/course/run/preview/PreviewIdentity.java
index 071a1a43250..5b1b029c509 100644
--- a/src/main/java/org/olat/course/run/preview/PreviewIdentity.java
+++ b/src/main/java/org/olat/course/run/preview/PreviewIdentity.java
@@ -100,9 +100,11 @@ public final class PreviewIdentity implements Identity, User {
 		return data.get(UserConstants.LASTNAME);
 	}
 
-	/**
-	 * @see org.olat.core.id.Identity#getUser()
-	 */
+	@Override
+	public String getSmsTelMobile() {
+		return data.get(UserConstants.SMSTELMOBILE);
+	}
+
 	@Override
 	public User getUser() {
 		return this;
@@ -143,9 +145,6 @@ public final class PreviewIdentity implements Identity, User {
 		//
 	}
 
-	/**
-	 * @see org.olat.core.commons.persistence.Auditable#getCreationDate()
-	 */
 	@Override
 	public Date getCreationDate() {
 		return new Date();
@@ -160,10 +159,7 @@ public final class PreviewIdentity implements Identity, User {
 	public Integer getStatus() {
 		return Identity.STATUS_ACTIV;
 	}
-	
-	/**
-	 * @see org.olat.core.commons.persistence.Persistable#equalsByPersistableKey(org.olat.core.commons.persistence.Persistable)
-	 */
+
 	@Override
 	public boolean equalsByPersistableKey(Persistable persistable) {
 		return equals(persistable);
diff --git a/src/main/java/org/olat/user/UserImpl.java b/src/main/java/org/olat/user/UserImpl.java
index ca69ab1df34..0f188976ebb 100644
--- a/src/main/java/org/olat/user/UserImpl.java
+++ b/src/main/java/org/olat/user/UserImpl.java
@@ -343,6 +343,14 @@ public class UserImpl implements Persistable, User {
 		this.institutionalEmail = institutionalEmail;
 	}
 	
+	public String getSmsTelMobile() {
+		return smsTelMobile;
+	}
+
+	public void setSmsTelMobile(String smsTelMobile) {
+		this.smsTelMobile = smsTelMobile;
+	}
+
 	public boolean isWebdav() {
 		return webdav;
 	}
-- 
GitLab