Author: jvelociter
Date: 2008-02-06 18:57:22 +0100 (Wed, 06 Feb 2008)
New Revision: 7318

Modified:
   
xwiki-platform/xwiki-plugins/trunk/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/api/SpaceManager.java
   
xwiki-platform/xwiki-plugins/trunk/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/impl/SpaceManagerImpl.java
   
xwiki-platform/xwiki-plugins/trunk/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/plugin/SpaceManagerPluginApi.java
Log:
XPSM-7 Add methods to better handle user roles inside a space
Patch submitted by Marius D. Florea

Applied with minor changes



Modified: 
xwiki-platform/xwiki-plugins/trunk/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/api/SpaceManager.java
===================================================================
--- 
xwiki-platform/xwiki-plugins/trunk/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/api/SpaceManager.java
   2008-02-06 16:33:10 UTC (rev 7317)
+++ 
xwiki-platform/xwiki-plugins/trunk/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/api/SpaceManager.java
   2008-02-06 17:57:22 UTC (rev 7318)
@@ -420,6 +420,12 @@
         throws SpaceManagerException;
 
     /**
+     * Returns the list of roles the specified user has as a member of the 
specified space
+     */
+    public Collection getRoles(String spaceName, String userName, XWikiContext 
context)
+        throws SpaceManagerException;
+
+    /**
      * @param spaceName
      * @param user
      * @param context

Modified: 
xwiki-platform/xwiki-plugins/trunk/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/impl/SpaceManagerImpl.java
===================================================================
--- 
xwiki-platform/xwiki-plugins/trunk/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/impl/SpaceManagerImpl.java
      2008-02-06 16:33:10 UTC (rev 7317)
+++ 
xwiki-platform/xwiki-plugins/trunk/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/impl/SpaceManagerImpl.java
      2008-02-06 17:57:22 UTC (rev 7318)
@@ -1055,8 +1055,8 @@
         throws SpaceManagerException
     {
         try {
-            return getGroupService(context).getAllMembersNamesForGroup(
-                getRoleGroupName(spaceName, role), 0, 0, context);
+            return 
sortUserNames(getGroupService(context).getAllMembersNamesForGroup(
+                getRoleGroupName(spaceName, role), 0, 0, context), context);
         } catch (XWikiException e) {
             throw new SpaceManagerException(e);
         }
@@ -1248,8 +1248,10 @@
 
     /**
      * [EMAIL PROTECTED]
+     * 
+     * @see SpaceManager#getMembers(String, XWikiContext)
      */
-    public Collection getMembers(String spaceName, final XWikiContext context)
+    public Collection getMembers(String spaceName, XWikiContext context)
         throws SpaceManagerException
     {
         try {
@@ -1368,7 +1370,27 @@
 
     /**
      * [EMAIL PROTECTED]
+     * 
+     * @see SpaceManager#getRoles(String, String, XWikiContext)
      */
+    public Collection getRoles(String spaceName, String memberName, 
XWikiContext context)
+        throws SpaceManagerException
+    {
+        try {
+            Collection memberRoles =
+                
context.getWiki().getGroupService(context).getAllGroupsNamesForMember(memberName,
+                    0, 0, context);
+            Collection spaceRoles = getRoles(spaceName, context);
+            memberRoles.retainAll(spaceRoles);
+            return memberRoles;
+        } catch (XWikiException e) {
+            throw new SpaceManagerException(e);
+        }
+    }
+
+    /**
+     * [EMAIL PROTECTED]
+     */
     public List getLastModifiedDocuments(String spaceName, XWikiContext 
context)
         throws SpaceManagerException
     {

Modified: 
xwiki-platform/xwiki-plugins/trunk/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/plugin/SpaceManagerPluginApi.java
===================================================================
--- 
xwiki-platform/xwiki-plugins/trunk/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/plugin/SpaceManagerPluginApi.java
       2008-02-06 16:33:10 UTC (rev 7317)
+++ 
xwiki-platform/xwiki-plugins/trunk/spacemanager/src/main/java/org/xwiki/plugin/spacemanager/plugin/SpaceManagerPluginApi.java
       2008-02-06 17:57:22 UTC (rev 7318)
@@ -21,11 +21,13 @@
 
 import com.xpn.xwiki.XWikiContext;
 import com.xpn.xwiki.plugin.PluginApi;
+
 import org.xwiki.plugin.spacemanager.api.Space;
 import org.xwiki.plugin.spacemanager.api.SpaceManager;
 import org.xwiki.plugin.spacemanager.api.SpaceManagerException;
 import org.xwiki.plugin.spacemanager.api.SpaceUserProfile;
 
+import java.util.Collections;
 import java.util.List;
 import java.util.Collection;
 
@@ -457,16 +459,46 @@
      * @param role
      * @return
      */
-    // public List getUsersForRole(Space space, String role) throws 
SpaceManagerException;
+    public Collection getUsersForRole(String spaceName, String role)
+    {
+        context.remove("SpaceManagerException");
+        try {
+            return getSpaceManager().getUsersForRole(spaceName, role, context);
+        } catch (SpaceManagerException e) {
+            context.put("SpaceManagerException", e);
+            return Collections.EMPTY_LIST;
+        }
+    }
 
     /**
-     *
-     * @param space
-     * @return
+     * @return the list of roles available for the given space
      */
-    // public List getRoles(Space space) throws SpaceManagerException;
+    public Collection getRoles(String spaceName)
+    {
+        context.remove("SpaceManagerException");
+        try {
+            return getSpaceManager().getRoles(spaceName, context);
+        } catch (SpaceManagerException e) {
+            context.put("SpaceManagerException", e);
+            return Collections.EMPTY_LIST;
+        }
+    }
 
     /**
+     * @return the list of roles the specified user has as a member of the 
specified space
+     */
+    public Collection getRoles(String spaceName, String memberName)
+    {
+        context.remove("SpaceManagerException");
+        try {
+            return getSpaceManager().getRoles(spaceName, memberName, context);
+        } catch (SpaceManagerException e) {
+            context.put("SpaceManagerException", e);
+            return Collections.EMPTY_LIST;
+        }
+    }
+
+    /**
      * Gets a user profile object
      * @param spaceName
      * @param user

_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications

Reply via email to