diff --git a/source/java/org/alfresco/repo/jscript/ScriptNode.java b/source/java/org/alfresco/repo/jscript/ScriptNode.java index a6f9f5d6cb..607b810651 100644 --- a/source/java/org/alfresco/repo/jscript/ScriptNode.java +++ b/source/java/org/alfresco/repo/jscript/ScriptNode.java @@ -2537,7 +2537,7 @@ public class ScriptNode implements Serializable, Scopeable, NamespacePrefixResol if (this.nodeService.exists(nodeRef)) { - if (this.services.getPermissionService().hasPermission(nodeRef, PermissionService.READ_PROPERTIES) == AccessStatus.ALLOWED) + if(this.services.getPublicServiceAccessService().hasAccess(this.services.NODE_SERVICE.getLocalName(), "getProperties", this.nodeRef) == AccessStatus.ALLOWED) { JSONObject json = new JSONObject(); diff --git a/source/java/org/alfresco/repo/service/ServiceDescriptorRegistry.java b/source/java/org/alfresco/repo/service/ServiceDescriptorRegistry.java index ead1f4cd3a..dbb8cb3253 100644 --- a/source/java/org/alfresco/repo/service/ServiceDescriptorRegistry.java +++ b/source/java/org/alfresco/repo/service/ServiceDescriptorRegistry.java @@ -65,6 +65,7 @@ import org.alfresco.service.cmr.security.AuthorityService; import org.alfresco.service.cmr.security.OwnableService; import org.alfresco.service.cmr.security.PermissionService; import org.alfresco.service.cmr.security.PersonService; +import org.alfresco.service.cmr.security.PublicServiceAccessService; import org.alfresco.service.cmr.site.SiteService; import org.alfresco.service.cmr.tagging.TaggingService; import org.alfresco.service.cmr.thumbnail.ThumbnailService; @@ -560,4 +561,12 @@ public class ServiceDescriptorRegistry { return (ImapService)getService(IMAP_SERVICE); } + + /* (non-Javadoc) + * @see org.alfresco.service.ServiceRegistry#getPublicServiceAccessService() + */ + public PublicServiceAccessService getPublicServiceAccessService() + { + return (PublicServiceAccessService)getService(PUBLIC_SERVICE_ACCESS_SERVICE); + } } diff --git a/source/java/org/alfresco/service/ServiceRegistry.java b/source/java/org/alfresco/service/ServiceRegistry.java index d8b2e2a4a6..e5486cb5a5 100644 --- a/source/java/org/alfresco/service/ServiceRegistry.java +++ b/source/java/org/alfresco/service/ServiceRegistry.java @@ -64,6 +64,7 @@ import org.alfresco.service.cmr.security.AuthorityService; import org.alfresco.service.cmr.security.OwnableService; import org.alfresco.service.cmr.security.PermissionService; import org.alfresco.service.cmr.security.PersonService; +import org.alfresco.service.cmr.security.PublicServiceAccessService; import org.alfresco.service.cmr.site.SiteService; import org.alfresco.service.cmr.tagging.TaggingService; import org.alfresco.service.cmr.thumbnail.ThumbnailService; @@ -155,6 +156,9 @@ public interface ServiceRegistry static final QName CMIS_QUERY_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "CMISQueryService"); static final QName IMAP_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "ImapService"); + static final QName PUBLIC_SERVICE_ACCESS_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "PublicServiceAccessService"); + + /** * Get the list of services provided by the Repository @@ -524,4 +528,13 @@ public interface ServiceRegistry */ @NotAuditable ImapService getImapService(); + + /** + * Get the IMAP service (or null if one is not provided) + * @return the IMAP service + */ + @NotAuditable + PublicServiceAccessService getPublicServiceAccessService(); + + }