Author: xlawrence
Date: Fri Aug 11 16:33:07 2006
New Revision: 14890

URL: https://svndev.jahia.net/websvn/listing.php?sc=1&rev=14890&repname=jahia
Log:
Regarding navigation, ignore ctnIds for which the user has no READ access

Modified:
    trunk/core/src/java/org/jahia/services/containers/ContainerFactory.java

Modified: 
trunk/core/src/java/org/jahia/services/containers/ContainerFactory.java
URL: 
https://svndev.jahia.net/websvn/diff.php?path=/trunk/core/src/java/org/jahia/services/containers/ContainerFactory.java&rev=14890&repname=jahia
==============================================================================
--- trunk/core/src/java/org/jahia/services/containers/ContainerFactory.java 
(original)
+++ trunk/core/src/java/org/jahia/services/containers/ContainerFactory.java Fri 
Aug 11 16:33:07 2006
@@ -207,11 +207,16 @@
                             JahiaException.USER_ERROR, 
JahiaException.ERROR_SEVERITY);
                 }
 
-                final Vector ctnids = getSorteredAndFilteredCtnIds(jParams, 
loadRequest, cList,
+                Vector ctnids = getSorteredAndFilteredCtnIds(jParams, 
loadRequest, cList,
                         cachedContainersFromContainerLists);
-                loadContainerListWithContainers(cList, ctnids, loadFlag, 
jParams, loadRequest,
+                ctnids = loadContainerListWithContainers(cList, ctnids, 
loadFlag, jParams, loadRequest,
                         cachedFieldsFromContainers, 
cachedContainersFromContainerLists,
                         cachedContainerListsFromContainers, currentUser);
+                final SessionState session = jParams.getSessionState();
+                if (session != null) {
+                    session.setAttribute("getSorteredAndFilteredCtnIds" + 
cList.getID(), ctnids);
+                    session.setAttribute("getSorteredAndFilteredCtnIdsList" + 
cList.getID(), cList);
+                }
             }
         }
         return cList;
@@ -241,12 +246,6 @@
             ctnids = new Vector();
         }
 
-        final SessionState session = jParams.getSessionState();
-        if (session != null) {
-            session.setAttribute("getSorteredAndFilteredCtnIds" + 
cList.getID(), ctnids);
-            session.setAttribute("getSorteredAndFilteredCtnIdsList" + 
cList.getID(), cList);
-        }
-
         return ctnids;
     }
 
@@ -720,7 +719,7 @@
      *
      * @throws JahiaException
      */
-    protected void loadContainerListWithContainers(
+    protected Vector loadContainerListWithContainers(
             final JahiaContainerList theContainerList,
             Vector ctnids,
             final int loadFlag,
@@ -733,7 +732,7 @@
             throws JahiaException {
 
         if (theContainerList == null) {
-            return;
+            return null;
         }
 
         // start check for correct rights.
@@ -788,9 +787,8 @@
                             }
                             final JahiaBaseACL acl = new 
JahiaBaseACL(aclID.intValue());
                             if (acl != null &&
-                                    acl.getPermission(currentUser,
-                                            JahiaBaseACL.READ_RIGHTS)) {
-                                v.add(ctnID);
+                                    acl.getPermission(currentUser, 
JahiaBaseACL.READ_RIGHTS)) {
+                                if (! v.contains(ctnID)) v.add(ctnID);
                             }
                         }
                     } catch (Throwable t) {
@@ -871,5 +869,6 @@
         if (theContainerList != null) {
             theContainerList.setIsContainersLoaded(true);
         }
+        return ctnids;
     }
 }

Reply via email to