From 9f97e6331cb48600462d74e9d562670f6a41e10e Mon Sep 17 00:00:00 2001
From: =?utf8?q?Roland=20H=C3=A4der?= <roland@mxchange.org>
Date: Wed, 3 Aug 2016 11:54:23 +0200
Subject: [PATCH] Please cherry-pick and later rewrite: - having the current
 user in his own visuble users list makes no sense - maybe make a new
 application-scoped controller which maintains such lists
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

Signed-off-by: Roland Häder <roland@mxchange.org>
---
 .../user/AddressbookUserWebSessionBean.java    | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/java/org/mxchange/addressbook/beans/user/AddressbookUserWebSessionBean.java b/src/java/org/mxchange/addressbook/beans/user/AddressbookUserWebSessionBean.java
index 29b088ad..7a380cfa 100644
--- a/src/java/org/mxchange/addressbook/beans/user/AddressbookUserWebSessionBean.java
+++ b/src/java/org/mxchange/addressbook/beans/user/AddressbookUserWebSessionBean.java
@@ -148,6 +148,9 @@ public class AddressbookUserWebSessionBean extends BaseAddressbookController imp
 
 	/**
 	 * A list of all public user profiles
+	 * <p>
+	 * @TODO Hmm, makes that sense? Having visible user list in current
+	 * (session-scoped) user's visible user list?
 	 */
 	private List<User> visibleUserList;
 
@@ -329,14 +332,17 @@ public class AddressbookUserWebSessionBean extends BaseAddressbookController imp
 			throw new IllegalArgumentException(MessageFormat.format("userId of user={0} is not valid: {1}", event.getLoggedInUser(), event.getLoggedInUser().getUserId())); //NOI18N
 		}
 
-		// Copy all data to this bean
-		this.copyUser(event.getLoggedInUser());
+		// "Cache" user instance
+		User loggedInUser = event.getLoggedInUser();
 
-		// Re-initialize list
-		// @TODO This calls the EJB again, after a user logs in which can cause lots of calls on it.
-		this.visibleUserList = this.userBean.allMemberPublicVisibleUsers();
+		// Copy all data to this bean
+		this.copyUser(loggedInUser);
 
-		// Trace message
+		// Is the user visible?
+		if (Objects.equals(loggedInUser.getUserProfileMode(), ProfileMode.PUBLIC)) {
+			// Yes, then add user
+			this.visibleUserList.add(loggedInUser);
+		}
 	}
 
 	@Override
-- 
2.39.5