diff --git a/source/java/org/alfresco/web/bean/trashcan/TrashcanDialog.java b/source/java/org/alfresco/web/bean/trashcan/TrashcanDialog.java index 30024acf59..351514a071 100644 --- a/source/java/org/alfresco/web/bean/trashcan/TrashcanDialog.java +++ b/source/java/org/alfresco/web/bean/trashcan/TrashcanDialog.java @@ -49,6 +49,8 @@ import org.alfresco.service.cmr.search.ResultSet; import org.alfresco.service.cmr.search.ResultSetRow; import org.alfresco.service.cmr.search.SearchParameters; import org.alfresco.service.cmr.search.SearchService; +import org.alfresco.service.cmr.security.AccessStatus; +import org.alfresco.service.cmr.security.PermissionService; import org.alfresco.service.namespace.QName; import org.alfresco.util.CachingDateFormat; import org.alfresco.web.app.Application; @@ -110,6 +112,27 @@ public class TrashcanDialog extends BaseDialogBean implements IContextListener private final static String SEARCH_TEXT_QUOTED = "PARENT:\"%s\" AND ASPECT:\"%s\" AND TEXT:\"%s\""; private final static String SEARCH_USERPREFIX = "@" + USER_ATTR + ":%s AND "; + /** The PermissionService reference */ + transient protected PermissionService permissionService; + + + /** + * @param permissionService The PermissionService to set. + */ + public void setPermissionService(PermissionService permissionService) + { + this.permissionService = permissionService; + } + + protected PermissionService getPermissionService() + { + if (permissionService == null) + { + permissionService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getPermissionService(); + } + return permissionService; + } + public void setProperty(TrashcanDialogProperty property) { this.property = property; @@ -278,7 +301,8 @@ public class TrashcanDialog extends BaseDialogBean implements IContextListener public Object get(Node node) { ChildAssociationRef childRef = (ChildAssociationRef)node.getProperties().get(ContentModel.PROP_ARCHIVED_ORIGINAL_PARENT_ASSOC); - if (getNodeService().exists(childRef.getParentRef())) + if (getPermissionService().hasPermission(childRef.getParentRef(), PermissionService.READ).equals(AccessStatus.ALLOWED) && + getNodeService().exists(childRef.getParentRef())) { return getNodeService().getPath(childRef.getParentRef()); } @@ -296,7 +320,8 @@ public class TrashcanDialog extends BaseDialogBean implements IContextListener public Object get(Node node) { ChildAssociationRef childRef = (ChildAssociationRef)node.getProperties().get(ContentModel.PROP_ARCHIVED_ORIGINAL_PARENT_ASSOC); - if (getNodeService().exists(childRef.getParentRef())) + if (getPermissionService().hasPermission(childRef.getParentRef(), PermissionService.READ).equals(AccessStatus.ALLOWED) && + getNodeService().exists(childRef.getParentRef())) { return Repository.getDisplayPath(getNodeService().getPath(childRef.getParentRef()), true); } diff --git a/source/java/org/alfresco/web/bean/wcm/AVMBrowseBean.java b/source/java/org/alfresco/web/bean/wcm/AVMBrowseBean.java index e9147f95c6..5ea257a0d7 100644 --- a/source/java/org/alfresco/web/bean/wcm/AVMBrowseBean.java +++ b/source/java/org/alfresco/web/bean/wcm/AVMBrowseBean.java @@ -383,7 +383,6 @@ public class AVMBrowseBean implements IContextListener linkValidationService = (LinkValidationService)FacesContextUtils.getRequiredWebApplicationContext( FacesContext.getCurrentInstance()).getBean("LinkValidationService"); } - return this.linkValidationService; } @@ -400,15 +399,14 @@ public class AVMBrowseBean implements IContextListener */ public SearchService getSearchService() { - //check for null for cluster environment - if(searchService == null) + //check for null for cluster environment + if (searchService == null) { searchService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getSearchService(); } return searchService; } - /** * @param permissionService The PermissionService to set. */ diff --git a/source/java/org/alfresco/web/bean/wcm/ManageReviewTaskDialog.java b/source/java/org/alfresco/web/bean/wcm/ManageReviewTaskDialog.java index 64da3f4497..2a65ac5bbc 100644 --- a/source/java/org/alfresco/web/bean/wcm/ManageReviewTaskDialog.java +++ b/source/java/org/alfresco/web/bean/wcm/ManageReviewTaskDialog.java @@ -64,10 +64,11 @@ public class ManageReviewTaskDialog extends ManageTaskDialog protected String webapp; protected NodeRef webProjectRef; protected AVMBrowseBean avmBrowseBean; - protected PermissionService permissionService; + transient protected PermissionService permissionService; private static final Log logger = LogFactory.getLog(ManageReviewTaskDialog.class); + // ------------------------------------------------------------------------------ // Implementation @@ -200,13 +201,22 @@ public class ManageReviewTaskDialog extends ManageTaskDialog } /** - * @param permissionService PermissionService instance - */ + * @param permissionService The PermissionService to set. + */ public void setPermissionService(PermissionService permissionService) { this.permissionService = permissionService; } + protected PermissionService getPermissionService() + { + if (permissionService == null) + { + permissionService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getPermissionService(); + } + return permissionService; + } + /** * @return Determines if there are any test servers configured for the * web project this task belongs to @@ -226,7 +236,7 @@ public class ManageReviewTaskDialog extends ManageTaskDialog { result = Boolean.FALSE; - if (this.webProjectRef != null && permissionService.hasPermission(webProjectRef, PermissionService.READ_PROPERTIES).equals(AccessStatus.ALLOWED)) + if (this.webProjectRef != null && getPermissionService().hasPermission(webProjectRef, PermissionService.READ_PROPERTIES).equals(AccessStatus.ALLOWED)) { List testServers = DeploymentUtil.findTestServers(this.webProjectRef, false); if (testServers != null) diff --git a/source/web/WEB-INF/faces-config-beans.xml b/source/web/WEB-INF/faces-config-beans.xml index 865c46a40f..5ff77e73cc 100644 --- a/source/web/WEB-INF/faces-config-beans.xml +++ b/source/web/WEB-INF/faces-config-beans.xml @@ -2444,6 +2444,10 @@ searchService #{SearchService} + + permissionService + #{PermissionService} + dictionaryService #{DictionaryService}