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