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;
}
}