From ba7f48869b497a45898b53547c595d31bfc9f6bc Mon Sep 17 00:00:00 2001 From: Kevin Roast Date: Wed, 14 Jun 2006 09:27:17 +0000 Subject: [PATCH] Permissions now exposed in FreeMarker template model git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@3094 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../service/cmr/repository/TemplateNode.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/source/java/org/alfresco/service/cmr/repository/TemplateNode.java b/source/java/org/alfresco/service/cmr/repository/TemplateNode.java index 9341562d0b..70993b26e3 100644 --- a/source/java/org/alfresco/service/cmr/repository/TemplateNode.java +++ b/source/java/org/alfresco/service/cmr/repository/TemplateNode.java @@ -35,6 +35,7 @@ import org.alfresco.repo.template.XPathResultsMap; import org.alfresco.service.ServiceRegistry; import org.alfresco.service.cmr.dictionary.DictionaryService; import org.alfresco.service.cmr.lock.LockStatus; +import org.alfresco.service.cmr.security.AccessPermission; import org.alfresco.service.namespace.QName; import org.alfresco.service.namespace.QNameMap; import org.alfresco.service.namespace.RegexQNamePattern; @@ -82,6 +83,7 @@ public final class TemplateNode implements Serializable private String id; private Set aspects = null; private QNameMap properties; + private List permissions = null; private boolean propsRetrieved = false; private ServiceRegistry services = null; private Boolean isDocument = null; @@ -474,6 +476,32 @@ public final class TemplateNode implements Serializable return locked; } + /** + * @return List of permissions applied to this Node. + * Strings returned are of the format [ALLOWED|DENIED];[USERNAME|GROUPNAME];PERMISSION for example + * ALLOWED;kevinr;Consumer so can be easily tokenized on the ';' character. + */ + public List getPermissions() + { + if (this.permissions == null) + { + String userName = this.services.getAuthenticationService().getCurrentUserName(); + this.permissions = new ArrayList(4); + Set acls = this.services.getPermissionService().getAllSetPermissions(this.nodeRef); + for (AccessPermission permission : acls) + { + StringBuilder buf = new StringBuilder(64); + buf.append(permission.getAccessStatus()) + .append(';') + .append(permission.getAuthority()) + .append(';') + .append(permission.getPermission()); + this.permissions.add(buf.toString()); + } + } + return this.permissions; + } + /** * @return the parent node */