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
This commit is contained in:
Alan Davis
2014-03-15 07:34:29 +00:00
parent c0b2d8eddd
commit 305d585df2
3 changed files with 20 additions and 5 deletions

View File

@@ -10,6 +10,7 @@
"createdDate" : "${xmldate(item.siteInfo.createdDate)}", "createdDate" : "${xmldate(item.siteInfo.createdDate)}",
"lastModifiedDate" : "${xmldate(item.siteInfo.lastModifiedDate)}", "lastModifiedDate" : "${xmldate(item.siteInfo.lastModifiedDate)}",
"visibility" : "${item.siteInfo.visibility}", "visibility" : "${item.siteInfo.visibility}",
"userIsSiteManager" : "${item.currentUserSiteManager?c}",
"siteManagers" : [{ "siteManagers" : [{
<#list item.members as manager> <#list item.members as manager>
"entry" : { "entry" : {

View File

@@ -80,8 +80,9 @@ public class SiteAdminSitesGet extends DeclarativeWebScript
@Override @Override
protected Map<String, Object> executeImpl(WebScriptRequest req, Status status, Cache cache) protected Map<String, Object> executeImpl(WebScriptRequest req, Status status, Cache cache)
{ {
String currentUser = AuthenticationUtil.getFullyAuthenticatedUser();
// check the current user access rights // check the current user access rights
if (!siteService.isSiteAdmin(AuthenticationUtil.getFullyAuthenticatedUser())) if (!siteService.isSiteAdmin(currentUser))
{ {
// Note: security, no message to indicate why // Note: security, no message to indicate why
throw new WebScriptException(HttpServletResponse.SC_NOT_FOUND, "Resource no found."); throw new WebScriptException(HttpServletResponse.SC_NOT_FOUND, "Resource no found.");
@@ -113,8 +114,8 @@ public class SiteAdminSitesGet extends DeclarativeWebScript
for (SiteInfo info : result) for (SiteInfo info : result)
{ {
sites.add(SiteState.create(info, sites.add(SiteState.create(info,
siteService.listMembers(info.getShortName(), null, SiteModel.SITE_MANAGER, 0), nodeService, siteService.listMembers(info.getShortName(), null, SiteModel.SITE_MANAGER, 0), currentUser,
personService)); nodeService, personService));
} }
Map<String, Object> sitesData = new HashMap<String, Object>(6); Map<String, Object> sitesData = new HashMap<String, Object>(6);

View File

@@ -40,19 +40,21 @@ public class SiteState
private SiteInfo siteInfo; private SiteInfo siteInfo;
private List<MemberState> members; private List<MemberState> members;
private boolean currentUserSiteManager;
private SiteState() private SiteState()
{ {
} }
public static SiteState create(SiteInfo siteInfo, Map<String, String> members, NodeService nodeService, public static SiteState create(SiteInfo siteInfo, Map<String, String> members, String currentUser,
PersonService personService) NodeService nodeService, PersonService personService)
{ {
SiteState result = new SiteState(); SiteState result = new SiteState();
result.members = new ArrayList<MemberState>(members.size()); result.members = new ArrayList<MemberState>(members.size());
result.siteInfo = siteInfo; result.siteInfo = siteInfo;
boolean found = false;
Set<String> siteMembers = members.keySet(); Set<String> siteMembers = members.keySet();
for (String userName : siteMembers) for (String userName : siteMembers)
{ {
@@ -63,6 +65,12 @@ public class SiteState
String lastName = (String) nodeService.getProperty(person, ContentModel.PROP_LASTNAME); String lastName = (String) nodeService.getProperty(person, ContentModel.PROP_LASTNAME);
result.members.add(new MemberState(userName, firstName, lastName)); result.members.add(new MemberState(userName, firstName, lastName));
} }
if (!found && userName.equals(currentUser))
{
found = true;
result.currentUserSiteManager = true;
}
} }
return result; return result;
@@ -78,6 +86,11 @@ public class SiteState
return this.members; return this.members;
} }
public boolean isCurrentUserSiteManager()
{
return this.currentUserSiteManager;
}
public static class MemberState public static class MemberState
{ {
private String userName; private String userName;