From 2766c577081ba8324599d17398e03dd281877eee Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Mon, 17 Oct 2011 17:06:23 +0000 Subject: [PATCH] ALF-1973 Handle the case of a discussion post having been created by a user who has subsequently been deleted git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31294 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../repository/discussions/post.lib.ftl | 2 ++ .../AbstractDiscussionWebScript.java | 21 ++++++++++++++----- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/discussions/post.lib.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/discussions/post.lib.ftl index 9028092467..2d2933003c 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/discussions/post.lib.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/discussions/post.lib.ftl @@ -3,12 +3,14 @@ <#escape x as jsonUtils.encodeJSONString(x)> "${fieldName}": { + <#if person?has_content> <#if person.assocs["cm:avatar"]??> "avatarRef": "${person.assocs["cm:avatar"][0].nodeRef?string}", "username": "${person.properties["cm:userName"]}", "firstName": "${person.properties["cm:firstName"]!""}", "lastName": "${person.properties["cm:lastName"]!""}" + }, diff --git a/source/java/org/alfresco/repo/web/scripts/discussion/AbstractDiscussionWebScript.java b/source/java/org/alfresco/repo/web/scripts/discussion/AbstractDiscussionWebScript.java index 3fd1df6f2a..ec23051254 100644 --- a/source/java/org/alfresco/repo/web/scripts/discussion/AbstractDiscussionWebScript.java +++ b/source/java/org/alfresco/repo/web/scripts/discussion/AbstractDiscussionWebScript.java @@ -38,6 +38,7 @@ import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.StoreRef; import org.alfresco.service.cmr.security.AccessStatus; +import org.alfresco.service.cmr.security.NoSuchPersonException; import org.alfresco.service.cmr.security.PermissionService; import org.alfresco.service.cmr.security.PersonService; import org.alfresco.service.cmr.site.SiteInfo; @@ -272,15 +273,25 @@ public abstract class AbstractDiscussionWebScript extends DeclarativeWebScript protected Object buildPerson(String username) { + // Empty string needed if the user can't be found + Object noSuchPersonResponse = ""; + if (username == null || username.length() == 0) { - // Empty string needed - return ""; + return noSuchPersonResponse; } - // Will turn into a Script Node needed of the person - NodeRef person = personService.getPerson(username); - return person; + try + { + // Will turn into a Script Node needed of the person + NodeRef person = personService.getPerson(username); + return person; + } + catch(NoSuchPersonException e) + { + // This is normally caused by the person having been deleted + return noSuchPersonResponse; + } } /*