From fd7dc6997af812f55371e18a6659d4c724760e6f Mon Sep 17 00:00:00 2001
From: gnaegi <none@none>
Date: Wed, 16 May 2018 17:31:56 +0200
Subject: [PATCH] OO-3475 show anonymous icon for deleted users, don't link to
 visiting card

---
 .../org/olat/user/DisplayPortraitController.java   | 12 +++++++-----
 .../java/org/olat/user/UserInfoMainController.java | 14 ++++++++------
 .../org/olat/user/_content/homepagedisplay.html    | 10 ++++++----
 3 files changed, 21 insertions(+), 15 deletions(-)

diff --git a/src/main/java/org/olat/user/DisplayPortraitController.java b/src/main/java/org/olat/user/DisplayPortraitController.java
index cb31ecaab9a..b690ae04a5a 100644
--- a/src/main/java/org/olat/user/DisplayPortraitController.java
+++ b/src/main/java/org/olat/user/DisplayPortraitController.java
@@ -67,6 +67,7 @@ public class DisplayPortraitController extends BasicController implements Generi
 	
 	private final boolean useLarge;
 	private final boolean isAnonymous;
+	private final boolean isDeletedUser;
 	private final boolean displayPortraitImage;
 	
 	private boolean forceAnonymous;	
@@ -135,8 +136,9 @@ public class DisplayPortraitController extends BasicController implements Generi
 	public DisplayPortraitController(UserRequest ureq, WindowControl wControl, Identity portraitIdent,
 			boolean useLarge, boolean canLinkToHomePage, boolean displayUserFullName, boolean displayPortraitImage) { 
 		super(ureq, wControl);
+		this.isDeletedUser = portraitIdent.getStatus().equals(Identity.STATUS_DELETED);
 		myContent = createVelocityContainer("displayportrait");
-		myContent.contextPut("canLinkToHomePage", canLinkToHomePage ? Boolean.TRUE : Boolean.FALSE);
+		myContent.contextPut("canLinkToHomePage", (canLinkToHomePage && !isDeletedUser) ? Boolean.TRUE : Boolean.FALSE);
 		if (portraitIdent == null) throw new AssertException("identity can not be null!");
 
 		this.useLarge = useLarge;
@@ -177,9 +179,9 @@ public class DisplayPortraitController extends BasicController implements Generi
 			
 			if (useLarge) {
 				image = DisplayPortraitManager.getInstance().getBigPortrait(portraitIdent.getName());
-				if (image != null && !forceAnonymous) {
+				if (image != null && !forceAnonymous && !isDeletedUser) {
 					myContent.contextPut("portraitCssClass", DisplayPortraitManager.AVATAR_BIG_CSS_CLASS);
-				} else if (isAnonymous || forceAnonymous) {
+				} else if (isAnonymous || forceAnonymous || isDeletedUser) {
 					myContent.contextPut("portraitCssClass", DisplayPortraitManager.ANONYMOUS_BIG_CSS_CLASS);
 				} else if (gender.equals("-")) {
 					myContent.contextPut("portraitCssClass", DisplayPortraitManager.DUMMY_BIG_CSS_CLASS);
@@ -190,9 +192,9 @@ public class DisplayPortraitController extends BasicController implements Generi
 				}
 			} else {
 				image = DisplayPortraitManager.getInstance().getSmallPortrait(portraitIdent.getName());
-				if (image != null && !forceAnonymous) {
+				if (image != null && !forceAnonymous && !isDeletedUser) {
 					myContent.contextPut("portraitCssClass", DisplayPortraitManager.AVATAR_SMALL_CSS_CLASS);					
-				} else if (isAnonymous || forceAnonymous) {
+				} else if (isAnonymous || forceAnonymous || isDeletedUser) {
 					myContent.contextPut("portraitCssClass", DisplayPortraitManager.ANONYMOUS_SMALL_CSS_CLASS);
 				} else if (gender.equals("-")) {
 					myContent.contextPut("portraitCssClass", DisplayPortraitManager.DUMMY_SMALL_CSS_CLASS);
diff --git a/src/main/java/org/olat/user/UserInfoMainController.java b/src/main/java/org/olat/user/UserInfoMainController.java
index b960a8fcbb7..edc5831dfe8 100644
--- a/src/main/java/org/olat/user/UserInfoMainController.java
+++ b/src/main/java/org/olat/user/UserInfoMainController.java
@@ -154,12 +154,14 @@ public class UserInfoMainController extends MainLayoutBasicController implements
 		firstLastName = userManager.getUserDisplayName(chosenIdentity);
 
 		// Navigation menu
-		menuTree = new MenuTree("menuTree");
-		GenericTreeModel tm = buildTreeModel(firstLastName);
-		menuTree.setTreeModel(tm);
-		menuTree.setSelectedNodeId(tm.getRootNode().getChildAt(0).getIdent());
-		menuTree.addListener(this);
-		menuTree.setRootVisible(showRootNode);
+		if (!chosenIdentity.getStatus().equals(Identity.STATUS_DELETED)) {
+			menuTree = new MenuTree("menuTree");
+			GenericTreeModel tm = buildTreeModel(firstLastName);
+			menuTree.setTreeModel(tm);
+			menuTree.setSelectedNodeId(tm.getRootNode().getChildAt(0).getIdent());
+			menuTree.addListener(this);
+			menuTree.setRootVisible(showRootNode);
+		}
 
 		// override if user is guest, don't show anything
 		if (ureq.getUserSession().getRoles().isGuestOnly()) {
diff --git a/src/main/java/org/olat/user/_content/homepagedisplay.html b/src/main/java/org/olat/user/_content/homepagedisplay.html
index db80336ff64..4dfb2c69f45 100644
--- a/src/main/java/org/olat/user/_content/homepagedisplay.html
+++ b/src/main/java/org/olat/user/_content/homepagedisplay.html
@@ -1,9 +1,8 @@
 <div class="o_visitingcard clearfix well"><div class="o_scrollblock">
 	<h2><i class="o_icon o_icon_visitingcard"> </i>$r.translate("menu.homepage") $userFullname</h2>
-	#if ($deleted) 
-		<p class="o_warning">$r.translate("user.deleted")</p>
-	#end
-
+#if ($deleted) 
+	<p class="o_warning">$r.translate("user.deleted")</p>
+#else 
 	<div class="o_visitingcard_content">
 		<div class="o_visitingcard_image o_block clearfix">	
 			<div class="pull-left">$r.render("image")</div>
@@ -44,8 +43,10 @@
 		#end
 		</table>
 	</div>
+#end
 </div></div>
 
+#if (!$deleted) 
 <div class="o_visitingcard_link o_extlink clearfix o_block_large_bottom">
 	<h5>$r.translate("extlink")</h5>
 	<div class="o_copy_code o_nowrap">
@@ -59,3 +60,4 @@
 		</script>
 	</div>
 </div>
+#end
\ No newline at end of file
-- 
GitLab