From d2bb2c96a2626aa9ab948da010d01a33377914f8 Mon Sep 17 00:00:00 2001 From: Kevin Roast Date: Fri, 15 Oct 2010 10:54:16 +0000 Subject: [PATCH] Fix for ALF-3017 - NodePathLinkRenderer fails if not the whole node path is visible to the user git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@23130 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../repo/renderer/NodePathLinkRenderer.java | 49 +++++++++++++++++-- 1 file changed, 44 insertions(+), 5 deletions(-) diff --git a/source/java/org/alfresco/web/ui/repo/renderer/NodePathLinkRenderer.java b/source/java/org/alfresco/web/ui/repo/renderer/NodePathLinkRenderer.java index 7cc70d1665..a75695d014 100644 --- a/source/java/org/alfresco/web/ui/repo/renderer/NodePathLinkRenderer.java +++ b/source/java/org/alfresco/web/ui/repo/renderer/NodePathLinkRenderer.java @@ -27,16 +27,18 @@ import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.transaction.UserTransaction; +import org.alfresco.model.ContentModel; import org.alfresco.repo.security.permissions.AccessDeniedException; import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.InvalidNodeRefException; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.Path; +import org.alfresco.service.cmr.security.AccessStatus; +import org.alfresco.service.cmr.security.PermissionService; import org.alfresco.web.bean.repository.Repository; import org.alfresco.web.ui.common.Utils; import org.alfresco.web.ui.common.renderer.BaseRenderer; -import org.alfresco.web.ui.repo.component.UINodeDescendants; import org.alfresco.web.ui.repo.component.UINodePath; /** @@ -150,12 +152,12 @@ public class NodePathLinkRenderer extends BaseRenderer } catch (InvalidNodeRefException refErr) { - // this error simple means we cannot output the path + // this error simply means we cannot output the path try { if (tx != null) {tx.rollback();} } catch (Exception tex) {} } catch (AccessDeniedException accessErr) { - // this error simple means we cannot output the path + // this error simply means we cannot output the path try { if (tx != null) {tx.rollback();} } catch (Exception tex) {} } catch (Throwable err) @@ -178,6 +180,8 @@ public class NodePathLinkRenderer extends BaseRenderer private String buildPathAsBreadcrumb(FacesContext context, UIComponent component, Path path, boolean showLeaf) { StringBuilder buf = new StringBuilder(1024); + NodeService nodeService = getNodeService(context); + PermissionService permissionService = getPermissionService(context); int size = (showLeaf ? path.size() : path.size() - 1); for (int i=0; i