com.atlassian.crowd.integration.atlassianuser
Class DirectCrowdGroupManager

java.lang.Object
  extended by com.atlassian.crowd.integration.atlassianuser.AbstractCrowdGroupManager
      extended by com.atlassian.crowd.integration.atlassianuser.DirectCrowdGroupManager
All Implemented Interfaces:
com.atlassian.user.EntityManager, com.atlassian.user.GroupManager

public class DirectCrowdGroupManager
extends AbstractCrowdGroupManager

Crowd implementation of the atlassian-user group manager.

A group manager is responsible for all CRUD operations on groups and group memberships in a given repository.

Where an operation requires a Group as an argument, calling the method with a group from another repository will typically throw an IllegalArgumentException.

The group manager is responsible for ensuring the consistency of the underlying repository where relevant. For example, if membership information needs to be updated as part of the removeGroup(Group) operation, the group manager is responsible for ensuring it happens.

This interface is an extension of the EntityManager interface which is common to user and group management. The common functionality includes initialisation and access to the repository description.


Field Summary
protected  com.atlassian.crowd.service.client.CrowdClient crowdClient
           
 
Constructor Summary
DirectCrowdGroupManager(com.atlassian.user.repository.RepositoryIdentifier repositoryIdentifier)
           
DirectCrowdGroupManager(com.atlassian.user.repository.RepositoryIdentifier repositoryIdentifier, com.atlassian.crowd.service.client.CrowdClient crowdClient)
          Controls the Group management in Crowd
 
Method Summary
 void addMembership(com.atlassian.user.Group group, com.atlassian.user.User user)
          Adds the user to the specified group.
 com.atlassian.user.Group createGroup(java.lang.String name)
          Create a new group with the specified name.
 com.atlassian.user.Group getGroup(java.lang.String name)
          Retrieves the group with the given name.
 com.atlassian.user.search.page.Pager getGroups()
          Retrieves all groups in this repository.
 com.atlassian.user.search.page.Pager getGroups(com.atlassian.user.User user)
          Retrieves the groups to which the given user belongs.
 com.atlassian.user.search.page.Pager getMemberNames(com.atlassian.user.Group group)
          Retrieves the names of all members of the specified group.
 boolean hasMembership(com.atlassian.user.Group group, com.atlassian.user.User user)
          Returns true if the user is a member of the specified group.
 void removeGroup(com.atlassian.user.Group group)
          Remove the group specified, if it exists in this repository.
 void removeMembership(com.atlassian.user.Group group, com.atlassian.user.User user)
          Removes the user from the specified group.
 
Methods inherited from class com.atlassian.crowd.integration.atlassianuser.AbstractCrowdGroupManager
getExternalMemberNames, getIdentifier, getLocalMemberNames, getRepository, isCreative, isReadOnly, supportsExternalMembership
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

crowdClient

protected final com.atlassian.crowd.service.client.CrowdClient crowdClient
Constructor Detail

DirectCrowdGroupManager

public DirectCrowdGroupManager(com.atlassian.user.repository.RepositoryIdentifier repositoryIdentifier,
                               com.atlassian.crowd.service.client.CrowdClient crowdClient)
Controls the Group management in Crowd

Parameters:
repositoryIdentifier - repository ID.
crowdClient - group and user manager.

DirectCrowdGroupManager

public DirectCrowdGroupManager(com.atlassian.user.repository.RepositoryIdentifier repositoryIdentifier)
Method Detail

getGroups

public com.atlassian.user.search.page.Pager getGroups()
                                               throws com.atlassian.user.EntityException
Retrieves all groups in this repository.

Returns:
a Pager containing a Group for each group managed by the repository. An empty pager will be returned if the repository does not contain any groups.
Throws:
com.atlassian.user.EntityException

getGroups

public com.atlassian.user.search.page.Pager getGroups(com.atlassian.user.User user)
                                               throws com.atlassian.user.EntityException
Retrieves the groups to which the given user belongs. Only groups which are managed by this repository are included.

Returns:
a Pager containing a Group for each group the user belongs to. An empty pager will be returned if the user does not belong to any groups that this manager knows about.
Throws:
com.atlassian.user.EntityException

getMemberNames

public com.atlassian.user.search.page.Pager getMemberNames(com.atlassian.user.Group group)
                                                    throws com.atlassian.user.EntityException
Retrieves the names of all members of the specified group.

Returns:
a Pager containing a String with the name of each member of the group. An empty pager will be returned if the group has no members.
Throws:
com.atlassian.user.EntityException

getGroup

public com.atlassian.user.Group getGroup(java.lang.String name)
                                  throws com.atlassian.user.EntityException
Retrieves the group with the given name. Returns null if the group does not exist in this repository.

Returns:
a Group or null if the group does not exist.
Throws:
com.atlassian.user.EntityException

createGroup

public com.atlassian.user.Group createGroup(java.lang.String name)
                                     throws com.atlassian.user.EntityException
Create a new group with the specified name.

Throws:
com.atlassian.user.EntityException - if the Group could not be created.
java.lang.UnsupportedOperationException - if AbstractCrowdGroupManager.isCreative() returns false

removeGroup

public void removeGroup(com.atlassian.user.Group group)
                 throws com.atlassian.user.EntityException
Remove the group specified, if it exists in this repository. If the group does not belong to this repository, an IllegalArgumentException will be thrown.

If required to maintain the consistency of the repository, the group manager should remove users from the group before removing the group itself.

Throws:
com.atlassian.user.EntityException - if the Group could not be removed.
java.lang.UnsupportedOperationException - if AbstractCrowdGroupManager.isReadOnly(Group) returns true.

addMembership

public void addMembership(com.atlassian.user.Group group,
                          com.atlassian.user.User user)
                   throws com.atlassian.user.EntityException
Adds the user to the specified group.

If the user is not in this repository, and AbstractCrowdGroupManager.supportsExternalMembership() returns true, the user will be added as an external user.

Throws:
java.lang.UnsupportedOperationException - if AbstractCrowdGroupManager.isReadOnly(Group) returns true.
com.atlassian.user.EntityException

hasMembership

public boolean hasMembership(com.atlassian.user.Group group,
                             com.atlassian.user.User user)
                      throws com.atlassian.user.EntityException
Returns true if the user is a member of the specified group.

If the user is not in this repository, and AbstractCrowdGroupManager.supportsExternalMembership() returns true, external members will be checked as well.

Returns:
true if the user is a member of the specified group, otherwise false.
Throws:
com.atlassian.user.EntityException

removeMembership

public void removeMembership(com.atlassian.user.Group group,
                             com.atlassian.user.User user)
                      throws com.atlassian.user.EntityException
Removes the user from the specified group.

Throws:
com.atlassian.user.EntityException - if the membership could not be removed.
java.lang.UnsupportedOperationException - if AbstractCrowdGroupManager.isReadOnly(Group) returns true.


Copyright © 2011 Atlassian. All Rights Reserved.