diff --git a/source/java/org/alfresco/repo/web/scripts/calendar/UserCalendarEntriesGet.java b/source/java/org/alfresco/repo/web/scripts/calendar/UserCalendarEntriesGet.java index 80c6f04983..42b4436c5a 100644 --- a/source/java/org/alfresco/repo/web/scripts/calendar/UserCalendarEntriesGet.java +++ b/source/java/org/alfresco/repo/web/scripts/calendar/UserCalendarEntriesGet.java @@ -25,6 +25,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.servlet.http.HttpServletResponse; + import org.alfresco.query.PagingRequest; import org.alfresco.query.PagingResults; import org.alfresco.repo.calendar.CalendarServiceImpl; @@ -63,6 +65,13 @@ public class UserCalendarEntriesGet extends AbstractCalendarListingWebScript if (siteName != null) { site = siteService.getSite(siteName); + + // MNT-3053 fix, siteName was provided in request but it doesn't exists or user has no permissions to access it. + if (site == null) + { + status.setCode(HttpServletResponse.SC_NOT_FOUND, "Site '" + siteName + "' does not exist or user has no permissions to access it."); + return null; + } } return executeImpl(site, null, req, null, status, cache); diff --git a/source/test-java/org/alfresco/repo/web/scripts/calendar/CalendarRestApiTest.java b/source/test-java/org/alfresco/repo/web/scripts/calendar/CalendarRestApiTest.java index b82449cb6a..acfd8d8db2 100644 --- a/source/test-java/org/alfresco/repo/web/scripts/calendar/CalendarRestApiTest.java +++ b/source/test-java/org/alfresco/repo/web/scripts/calendar/CalendarRestApiTest.java @@ -39,6 +39,7 @@ import org.alfresco.service.cmr.security.PersonService; import org.alfresco.service.cmr.site.SiteInfo; import org.alfresco.service.cmr.site.SiteService; import org.alfresco.service.cmr.site.SiteVisibility; +import org.alfresco.util.GUID; import org.alfresco.util.PropertyMap; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -1182,6 +1183,20 @@ public class CalendarRestApiTest extends BaseWebScriptTest events = result.getJSONArray("events"); assertEquals(0, events.length()); } + + /** + * Listing for a user + */ + public void testMNT_3053() throws Exception + { + String siteName = null; + do + { + siteName = GUID.generate(); + } + while (siteService.getSite(siteName) != null); + sendRequest(new GetRequest("/calendar/events/" + siteName + "/user"), 404); + } /** * Repeating events support, across both the site