From 344b703a610c9c72f6a650f6839c3d5106fd2a91 Mon Sep 17 00:00:00 2001 From: Roy Wetherall Date: Sat, 10 May 2008 00:27:11 +0000 Subject: [PATCH] Site Service: GET, PUT and DELETE methods implemented and unit tested for Membership resource git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@9063 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../org/alfresco/repo/site/SiteService.java | 57 +++++++++++++++++++ .../alfresco/repo/site/SiteServiceImpl.java | 19 ++++++- .../org/alfresco/repo/site/script/Site.java | 26 ++++++++- 3 files changed, 99 insertions(+), 3 deletions(-) diff --git a/source/java/org/alfresco/repo/site/SiteService.java b/source/java/org/alfresco/repo/site/SiteService.java index d6fa18278f..6fad738dd8 100644 --- a/source/java/org/alfresco/repo/site/SiteService.java +++ b/source/java/org/alfresco/repo/site/SiteService.java @@ -35,16 +35,73 @@ public interface SiteService // TODO audit information List listSites(String nameFilter, String sitePresetFilter); + /** + * Gets site information based on the short name of a site. + *

+ * Returns null if the site can not be found. + * + * @param shortName the site short name + * @return SiteInfo the site information + */ SiteInfo getSite(String shortName); + /** + * Update the site information. + *

+ * Note that the shortname and sitepreset of a site can not be updated once the site has been created. + * + * @param siteInfo site information + */ void updateSite(SiteInfo siteInfo); + /** + * Delete the site. + * + * @param shortName site short name + */ void deleteSite(String shortName); + /** + * List the memebers of the site. + *

+ * Name and role filters are optional and if not specified all the memebers of the site are returned. + * + * @param shortName site short name + * @param nameFilter name filter + * @param roleFilter role filter + * @return Map the username and their role + */ Map listMembers(String shortName, String nameFilter, String roleFilter); + /** + * + * @param shortName + * @param userName + * @return + */ + String getMembersRole(String shortName, String userName); + + /** + * + * @param shortName + * @param userName + * @return + */ + boolean isMember(String shortName, String userName); + + /** + * + * @param shortName + * @param userName + * @param role + */ void setMembership(String shortName, String userName, String role); + /** + * + * @param shortName + * @param userName + */ void removeMembership(String shortName, String userName); diff --git a/source/java/org/alfresco/repo/site/SiteServiceImpl.java b/source/java/org/alfresco/repo/site/SiteServiceImpl.java index 2067a12a86..58b7f5190c 100644 --- a/source/java/org/alfresco/repo/site/SiteServiceImpl.java +++ b/source/java/org/alfresco/repo/site/SiteServiceImpl.java @@ -310,7 +310,7 @@ public class SiteServiceImpl extends AbstractLifecycleBean implements SiteServic } else { - // CHeck to see if we already have an entry for the user in the map + // Check to see if we already have an entry for the user in the map if (members.containsKey(authority) == true) { // TODO .. we need to resolve the permission in the map to the 'highest' @@ -327,6 +327,23 @@ public class SiteServiceImpl extends AbstractLifecycleBean implements SiteServic return members; } + /** + * @see org.alfresco.repo.site.SiteService#getMembersRole(java.lang.String, java.lang.String) + */ + public String getMembersRole(String shortName, String userName) + { + Map members = listMembers(shortName, null, null); + return members.get(userName); + } + + /** + * @see org.alfresco.repo.site.SiteService#isMember(java.lang.String, java.lang.String) + */ + public boolean isMember(String shortName, String userName) + { + return (getMembersRole(shortName, userName) != null); + } + /** * @see org.alfresco.repo.site.SiteService#removeMembership(java.lang.String, java.lang.String) */ diff --git a/source/java/org/alfresco/repo/site/script/Site.java b/source/java/org/alfresco/repo/site/script/Site.java index 1d9dd53247..ed99974ba1 100644 --- a/source/java/org/alfresco/repo/site/script/Site.java +++ b/source/java/org/alfresco/repo/site/script/Site.java @@ -30,8 +30,6 @@ import java.util.Map; import org.alfresco.repo.jscript.ScriptableHashMap; import org.alfresco.repo.site.SiteInfo; import org.alfresco.repo.site.SiteService; -import org.jgroups.util.GetNetworkInterfaces1_4; -import org.mozilla.javascript.ScriptableObject; /** * Site JavaScript object @@ -192,6 +190,30 @@ public class Site implements Serializable return result; } + /** + * Gets a user's role on this site. + *

+ * If the user is not a member of the site then null is returned. + * + * @param userName user name + * @return String user's role or null if not a member + */ + public String getMembersRole(String userName) + { + return this.siteService.getMembersRole(getShortName(), userName); + } + + /** + * Indicates whether a user is a member of the site. + * + * @param userName user name + * @return boolean true if the user is a member of the site, false otherwise + */ + public boolean isMember(String userName) + { + return this.siteService.isMember(getShortName(), userName); + } + /** * Sets the membership details for a user. *