From 3013c7809a2655441fe2ebe4f36eb6a828385051 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Tue, 22 Jul 2014 10:10:44 +0200
Subject: [PATCH] OO-1000: fix RS in map seen by others users

---
 src/main/java/org/olat/portfolio/EPUIFactory.java   | 13 -------------
 .../olat/portfolio/manager/EPStructureManager.java  |  8 ++++----
 .../java/org/olat/user/UserInfoMainController.java  |  5 +++--
 3 files changed, 7 insertions(+), 19 deletions(-)

diff --git a/src/main/java/org/olat/portfolio/EPUIFactory.java b/src/main/java/org/olat/portfolio/EPUIFactory.java
index 3792a5d768f..da60fd94bd6 100755
--- a/src/main/java/org/olat/portfolio/EPUIFactory.java
+++ b/src/main/java/org/olat/portfolio/EPUIFactory.java
@@ -26,14 +26,11 @@ import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.generic.closablewrapper.CloseableModalController;
-import org.olat.core.id.Identity;
 import org.olat.core.id.OLATResourceable;
 import org.olat.portfolio.model.artefacts.AbstractArtefact;
 import org.olat.portfolio.model.structel.PortfolioStructure;
 import org.olat.portfolio.model.structel.PortfolioStructureMap;
 import org.olat.portfolio.ui.EPArtefactPoolRunController;
-import org.olat.portfolio.ui.EPMapRunController;
-import org.olat.portfolio.ui.EPMapRunViewOption;
 import org.olat.portfolio.ui.PortfolioAdminController;
 import org.olat.portfolio.ui.artefacts.collect.ArtefactWizzardStepsController;
 import org.olat.portfolio.ui.artefacts.view.EPArtefactViewController;
@@ -77,16 +74,6 @@ public class EPUIFactory {
 		return new PortfolioAdminController(ureq, wControl);
 	}
 	
-	/**
-	 * Get a controller with all maps I can see from other users,
-	 * @param ureq
-	 * @param wControl
-	 * @return
-	 */
-	public static Controller createPortfolioMapsVisibleToOthersController(UserRequest ureq, WindowControl wControl, Identity choosenOwner) {
-		return new EPMapRunController(ureq, wControl, false, EPMapRunViewOption.OTHER_MAPS, choosenOwner);
-	}
-	
 	public static Controller createPortfolioStructureMapController(UserRequest ureq, WindowControl wControl, PortfolioStructureMap map,
 			EPSecurityCallback secCallback) {
 		return new EPMapViewController(ureq, wControl, map, false, false, secCallback);
diff --git a/src/main/java/org/olat/portfolio/manager/EPStructureManager.java b/src/main/java/org/olat/portfolio/manager/EPStructureManager.java
index 7fad716dd50..974859b2b69 100755
--- a/src/main/java/org/olat/portfolio/manager/EPStructureManager.java
+++ b/src/main/java/org/olat/portfolio/manager/EPStructureManager.java
@@ -272,7 +272,7 @@ public class EPStructureManager extends BasicManager {
 	private <U> TypedQuery<U> buildStructureElementsFromOthersLimitedQuery(Identity choosenOwner, Class<U> cl, ElementType... types){
 		StringBuilder sb = new StringBuilder();
 		if(cl.equals(Number.class)) {
-			sb.append("select count(stEl.key) from ").append(EPStructureElement.class.getName()).append(" stEl ")
+			sb.append("select count(stEl) from ").append(EPStructureElement.class.getName()).append(" stEl ")
 			  .append(" inner join stEl.olatResource as oRes ");
 		} else {
 			sb.append("select stEl from ").append(EPStructureElement.class.getName()).append(" stEl ")
@@ -292,8 +292,8 @@ public class EPStructureManager extends BasicManager {
 		  .append(" )");
 
 		if (choosenOwner != null) {
-			sb.append(" and stEl.group in (select sgi.key from bgroup as sgi, bgroupmember as sgmsi ")
-			  .append("   where sgmsi.group=sgi and sgmsi.identity=:owner")
+			sb.append(" and exists (select sgi.key from bgroup as sgi, bgroupmember as sgmsi ")
+			  .append("   where sgmsi.group=baseGroup and sgmsi.identity=:owner")
 			  .append(" )");
 		}
 		if (types != null && types.length > 0) {
@@ -353,7 +353,7 @@ public class EPStructureManager extends BasicManager {
 		  .append(" and (relGroup.validTo is null or relGroup.validTo>=:date)");
 		
 		if(choosenOwner != null) {
-			sb.append(" and exists (select sgi from bgroupmember as sgmsi ")
+			sb.append(" and exists (select sgmsi from bgroupmember as sgmsi ")
 			  .append("   where sgmsi.group=baseGroup and sgmsi.identity.key=:ownerKey")
 			  .append(" )");
 		}
diff --git a/src/main/java/org/olat/user/UserInfoMainController.java b/src/main/java/org/olat/user/UserInfoMainController.java
index 9f382ca50db..5c28c70af24 100644
--- a/src/main/java/org/olat/user/UserInfoMainController.java
+++ b/src/main/java/org/olat/user/UserInfoMainController.java
@@ -66,9 +66,10 @@ import org.olat.core.util.resource.OresHelper;
 import org.olat.core.util.vfs.callbacks.ReadOnlyCallback;
 import org.olat.core.util.vfs.callbacks.VFSSecurityCallback;
 import org.olat.modules.co.ContactFormController;
-import org.olat.portfolio.EPUIFactory;
 import org.olat.portfolio.PortfolioModule;
 import org.olat.portfolio.manager.InvitationDAO;
+import org.olat.portfolio.ui.EPMapRunController;
+import org.olat.portfolio.ui.EPMapRunViewOption;
 import org.springframework.beans.factory.annotation.Autowired;
 
 /**
@@ -307,7 +308,7 @@ public class UserInfoMainController extends MainLayoutBasicController implements
 			myContent = contactFormController.getInitialComponent();
 		} else if (menuCommand.equals(CMD_PORTFOLIO)) {
 			removeAsListenerAndDispose(portfolioController);
-			portfolioController = EPUIFactory.createPortfolioMapsVisibleToOthersController(ureq, getWindowControl(), chosenIdentity);
+			portfolioController = new EPMapRunController(ureq, getWindowControl(), false, EPMapRunViewOption.OTHER_MAPS, chosenIdentity);
 			listenTo(portfolioController);
 			myContent = portfolioController.getInitialComponent();
 		}
-- 
GitLab