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
This commit is contained in:
Kevin Roast
2006-06-14 09:27:17 +00:00
parent 40c225d3c7
commit ba7f48869b

View File

@@ -35,6 +35,7 @@ import org.alfresco.repo.template.XPathResultsMap;
import org.alfresco.service.ServiceRegistry; import org.alfresco.service.ServiceRegistry;
import org.alfresco.service.cmr.dictionary.DictionaryService; import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.lock.LockStatus; 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.QName;
import org.alfresco.service.namespace.QNameMap; import org.alfresco.service.namespace.QNameMap;
import org.alfresco.service.namespace.RegexQNamePattern; import org.alfresco.service.namespace.RegexQNamePattern;
@@ -82,6 +83,7 @@ public final class TemplateNode implements Serializable
private String id; private String id;
private Set<QName> aspects = null; private Set<QName> aspects = null;
private QNameMap<String, Object> properties; private QNameMap<String, Object> properties;
private List<String> permissions = null;
private boolean propsRetrieved = false; private boolean propsRetrieved = false;
private ServiceRegistry services = null; private ServiceRegistry services = null;
private Boolean isDocument = null; private Boolean isDocument = null;
@@ -474,6 +476,32 @@ public final class TemplateNode implements Serializable
return locked; 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<String> getPermissions()
{
if (this.permissions == null)
{
String userName = this.services.getAuthenticationService().getCurrentUserName();
this.permissions = new ArrayList<String>(4);
Set<AccessPermission> 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 * @return the parent node
*/ */