Revision: 3916
http://openutils.svn.sourceforge.net/openutils/?rev=3916&view=rev
Author: diego_schivo
Date: 2012-04-06 12:46:03 +0000 (Fri, 06 Apr 2012)
Log Message:
-----------
AccessibleResultItemResultIterator: PermissionUtil.isGranted
Modified Paths:
--------------
magnoliamodules/trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AccessibleResultItemResultIterator.java
Modified: magnoliamodules/trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AccessibleResultItemResultIterator.java
===================================================================
--- magnoliamodules/trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AccessibleResultItemResultIterator.java 2012-04-06 12:04:57 UTC (rev 3915)
+++ magnoliamodules/trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/advanced/impl/AccessibleResultItemResultIterator.java 2012-04-06 12:46:03 UTC (rev 3916)
@@ -20,11 +20,11 @@
package net.sourceforge.openutils.mgnlcriteria.advanced.impl;
import info.magnolia.cms.core.HierarchyManager;
-import info.magnolia.cms.security.AccessDeniedException;
+import info.magnolia.cms.security.PermissionUtil;
import java.util.NoSuchElementException;
-import javax.jcr.ItemNotFoundException;
+import javax.jcr.Session;
import javax.jcr.query.RowIterator;
import net.sourceforge.openutils.mgnlcriteria.jcr.query.AdvancedResultItem;
@@ -77,27 +77,11 @@
// search for the next accessible result
do
{
- try
+ next = super.next();
+ if (!PermissionUtil.isGranted(hm.getWorkspace().getName(), next.getHandle(), Session.ACTION_READ))
{
- next = super.next();
+ next = null;
}
- catch (RuntimeException e)
- {
-
- if (e.getCause() instanceof AccessDeniedException)
- {
- // if it is an access-denied exception then ignore it
- }
- else if (e.getCause() instanceof ItemNotFoundException)
- {
- // if it is an access-denied exception then ignore it
- log.warn("Ignoring invalid node while iterating {}", e.getCause().getMessage());
- }
- else
- {
- throw e;
- }
- }
}
while (next == null && super.hasNext());
// return true if a next result exists and it is accessible
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|