diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/person/people.get.js b/config/alfresco/templates/webscripts/org/alfresco/repository/person/people.get.js index e93f075c66..b5262632b5 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/person/people.get.js +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/person/people.get.js @@ -2,11 +2,6 @@ var filter = args["filter"]; var maxResults = args["maxResults"]; -if (filter) -{ - filter = filter.replace('"', ''); -} - // Get the collection of people var peopleCollection = people.getPeople(filter, maxResults != null ? parseInt(maxResults) : 0); diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/person/person.delete.js b/config/alfresco/templates/webscripts/org/alfresco/repository/person/person.delete.js index febe12cf60..45bb6e5d2b 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/person/person.delete.js +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/person/person.delete.js @@ -7,31 +7,11 @@ function main() var person = people.getPerson(userName); // if person is found matching the given user name - // then get that person's details to pass through - // to the template and then delete that person + // then delete that person if (person != null) { - // Get the person's details - - var personDetails = - { - properties: [] - } - - personDetails.properties["userName"] = userName; - personDetails.properties["title"] = person.properties["title"]; - personDetails.properties["firstName"] = person.properties["firstName"]; - personDetails.properties["lastName"] = person.properties["lastName"]; - personDetails.properties["organization"] = person.properties["organization"]; - personDetails.properties["jobtitle"] = person.properties["jobtitle"]; - personDetails.properties["email"] = person.properties["email"]; - personDetails.assocs = {}; // fake the assocs object - // delete the person people.deletePerson(userName); - - // Put the person's details on the model to pass to the template - model.personDetails = personDetails; } // else if no person was found matching the given user name, // then return HTTP error status "not found" diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/person/person.delete.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/person/person.delete.json.ftl index 578b3cd266..9e26dfeeb6 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/person/person.delete.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/person/person.delete.json.ftl @@ -1,2 +1 @@ -<#import "person.lib.ftl" as personLib/> -<@personLib.personJSON person=personDetails/> \ No newline at end of file +{} \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/person/person.get.js b/config/alfresco/templates/webscripts/org/alfresco/repository/person/person.get.js index 0204600d26..94c987925e 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/person/person.get.js +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/person/person.get.js @@ -3,11 +3,15 @@ function main() // Get the user name of the person to get var userName = url.extension; + // Do we want to return containing groups? + var groups = (args["groups"] == "true"); + // Get the person who has that user name var person = people.getPerson(userName); if (person != null) { model.person = person; + model.groups = groups ? people.getContainerGroups(person) : null; } else { diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/person/person.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/person/person.get.json.ftl index f717672ded..3da1723e2e 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/person/person.get.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/person/person.get.json.ftl @@ -1,2 +1,6 @@ <#import "person.lib.ftl" as personLib/> -<@personLib.personJSON person=person/> \ No newline at end of file +<#if groups??> +<@personLib.personGroupsJSON person=person groups=groups/> +<#else> +<@personLib.personJSON person=person/> + \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/person/person.lib.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/person/person.lib.ftl index f81f24808c..45db54e133 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/person/person.lib.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/person/person.lib.ftl @@ -1,6 +1,5 @@ -<#macro personJSON person> +<#macro personJSONinner person> <#escape x as jsonUtils.encodeJSONString(x)> -{ "url" : "${url.serviceContext + "/api/person/" + person.properties.userName}", "userName" : "${person.properties.userName}", <#if person.assocs["cm:avatar"]??> @@ -26,10 +25,23 @@ "quota" : <#if person.properties.sizeQuota??>${person.properties.sizeQuota?c}<#else>0, "sizeCurrent" : <#if person.properties.sizeCurrent??>${person.properties.sizeCurrent?c}<#else>0, "persondescription" : <#if person.properties.persondescription??>"${person.properties.persondescription.content}"<#else>null -} +<#macro personJSON person> +{ +<@personJSONinner person=person/> +} + + +<#macro personGroupsJSON person groups> +{ +<@personJSONinner person=person/> + , + "groups" : [<#list groups as g>"${jsonUtils.encodeJSONString(g.properties["usr:authorityName"])}"<#if g_has_next>, ] +} + + <#macro personSummaryJSON person> <#escape x as jsonUtils.encodeJSONString(x)> { diff --git a/source/java/org/alfresco/repo/web/scripts/person/PersonServiceTest.java b/source/java/org/alfresco/repo/web/scripts/person/PersonServiceTest.java index 109fe826af..ccf4afe370 100644 --- a/source/java/org/alfresco/repo/web/scripts/person/PersonServiceTest.java +++ b/source/java/org/alfresco/repo/web/scripts/person/PersonServiceTest.java @@ -253,14 +253,7 @@ public class PersonServiceTest extends BaseWebScriptTest Status.STATUS_OK); // Delete the person - JSONObject result = deletePerson(userName, Status.STATUS_OK); - - assertEquals(userName, result.get("userName")); - assertEquals("myFirstName", result.get("firstName")); - assertEquals("myLastName", result.get("lastName")); - assertEquals("myOrganisation", result.get("organisation")); - assertEquals("myJobTitle", result.get("jobtitle")); - assertEquals("firstName.lastName@email.com", result.get("email")); + deletePerson(userName, Status.STATUS_OK); // Make sure that the person has been deleted and no longer exists deletePerson(userName, Status.STATUS_NOT_FOUND);