From 305d585df278f41621fb377059fccc983407a997 Mon Sep 17 00:00:00 2001 From: Alan Davis Date: Sat, 15 Mar 2014 07:34:29 +0000 Subject: [PATCH] Merged HEAD-BUG-FIX (4.3/Cloud) to HEAD (4.3/Cloud) 64469: Merged WAT1 (4.3/Cloud) to HEAD-BUG-FIX (4.3/Cloud) 63596: ACE-809: Updated site-admin webscript to include the new attribute "userIsSiteManager". git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@64615 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../site/site-admin-sites.get.json.ftl | 1 + .../web/scripts/site/SiteAdminSitesGet.java | 7 ++++--- .../repo/web/scripts/site/SiteState.java | 17 +++++++++++++++-- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/site/site-admin-sites.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/site/site-admin-sites.get.json.ftl index fa1dba1b9b..2fcadb6978 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/site/site-admin-sites.get.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/site/site-admin-sites.get.json.ftl @@ -10,6 +10,7 @@ "createdDate" : "${xmldate(item.siteInfo.createdDate)}", "lastModifiedDate" : "${xmldate(item.siteInfo.lastModifiedDate)}", "visibility" : "${item.siteInfo.visibility}", + "userIsSiteManager" : "${item.currentUserSiteManager?c}", "siteManagers" : [{ <#list item.members as manager> "entry" : { diff --git a/source/java/org/alfresco/repo/web/scripts/site/SiteAdminSitesGet.java b/source/java/org/alfresco/repo/web/scripts/site/SiteAdminSitesGet.java index 88022fe9a6..6b92b53284 100644 --- a/source/java/org/alfresco/repo/web/scripts/site/SiteAdminSitesGet.java +++ b/source/java/org/alfresco/repo/web/scripts/site/SiteAdminSitesGet.java @@ -80,8 +80,9 @@ public class SiteAdminSitesGet extends DeclarativeWebScript @Override protected Map executeImpl(WebScriptRequest req, Status status, Cache cache) { + String currentUser = AuthenticationUtil.getFullyAuthenticatedUser(); // check the current user access rights - if (!siteService.isSiteAdmin(AuthenticationUtil.getFullyAuthenticatedUser())) + if (!siteService.isSiteAdmin(currentUser)) { // Note: security, no message to indicate why throw new WebScriptException(HttpServletResponse.SC_NOT_FOUND, "Resource no found."); @@ -113,8 +114,8 @@ public class SiteAdminSitesGet extends DeclarativeWebScript for (SiteInfo info : result) { sites.add(SiteState.create(info, - siteService.listMembers(info.getShortName(), null, SiteModel.SITE_MANAGER, 0), nodeService, - personService)); + siteService.listMembers(info.getShortName(), null, SiteModel.SITE_MANAGER, 0), currentUser, + nodeService, personService)); } Map sitesData = new HashMap(6); diff --git a/source/java/org/alfresco/repo/web/scripts/site/SiteState.java b/source/java/org/alfresco/repo/web/scripts/site/SiteState.java index 59c817a04d..1857e7c670 100644 --- a/source/java/org/alfresco/repo/web/scripts/site/SiteState.java +++ b/source/java/org/alfresco/repo/web/scripts/site/SiteState.java @@ -40,19 +40,21 @@ public class SiteState private SiteInfo siteInfo; private List members; + private boolean currentUserSiteManager; private SiteState() { } - public static SiteState create(SiteInfo siteInfo, Map members, NodeService nodeService, - PersonService personService) + public static SiteState create(SiteInfo siteInfo, Map members, String currentUser, + NodeService nodeService, PersonService personService) { SiteState result = new SiteState(); result.members = new ArrayList(members.size()); result.siteInfo = siteInfo; + boolean found = false; Set siteMembers = members.keySet(); for (String userName : siteMembers) { @@ -63,6 +65,12 @@ public class SiteState String lastName = (String) nodeService.getProperty(person, ContentModel.PROP_LASTNAME); result.members.add(new MemberState(userName, firstName, lastName)); } + + if (!found && userName.equals(currentUser)) + { + found = true; + result.currentUserSiteManager = true; + } } return result; @@ -78,6 +86,11 @@ public class SiteState return this.members; } + public boolean isCurrentUserSiteManager() + { + return this.currentUserSiteManager; + } + public static class MemberState { private String userName;