Managing Workspace Users 
The Workspace API enables you to access and manage workspace users. The following examples illustrate various use cases of managing users, such as adding or removing workspace members, or changing their workspace roles.
Example
This example shows how to retrieve the workspace member list by the module context:
private IMemberList getMemberListByModule(IPortalComponentRequest request)
{
// Retrieve the workspace in which this module is running
IModuleContext moduleContext = ModuleHelper.getModuleContext(request);
IWorkspaceFactory workspaceFactory = (IWorkspaceFactory) RuntimeFactory.getWorkspacesRuntime().getService(IWorkspaceFactory.class);
IIdentifier workspaceIdentifier = moduleContext.getModuleID().getWorkspaceID();
IWorkspace workspace = workspaceFactory.getWorkspace(moduleContext.getUser() ,workspaceIdentifier);
// Retrieve members in this workspace
IMemberList memberList = workspace.getMemberList();
return memberList;
}
Example
This example shows how to retrieve the workspace member list by the workspace ID:
private IMemberList getMemberListByWorkspace(IPortalComponentRequest request, String workspaceID)
{
// Retrieve the workspace factory
IWorkspaceFactory workspaceFactory = (IWorkspaceFactory) RuntimeFactory.getWorkspacesRuntime().getService(IWorkspaceFactory.class);
IIdentifier workspaceIdentifier = workspaceFactory.getSharedIdentifier(workspaceID);
// Retrieve the workspace in which this module is running
IWorkspace workspace = workspaceFactory.getWorkspace(request.getUser() ,workspaceIdentifier);
// Retrieve members in this workspace
IMemberList memberList = workspace.getMemberList();
return memberList;
}
Example
private void addMemberToWorkspace(IPortalComponentRequest request, Object userToAdd)
{
IMemberList memberlist = accessingWorkspaceMemberList(request);
// Retrieve list of managers
IRole managerRole = memberlist.getRole(WorkspaceRole.MANAGER);
// Add user as manager
managerRole.addUser(request.getUser(), userToAdd);
}
Example
private void removeMemberFromWorkspace(IPortalComponentRequest request, Object userToRemove)
{
IMemberList memberlist = accessingWorkspaceMemberList(request);
// Retrieve list of members
IRole memberRole = memberlist.getRole(WorkspaceRole.MEMBER);
// Remove user from workspace
memberRole.removeUser(request.getUser(), userToRemove);
}
Example
private void ChangeMemberRole(IPortalComponentRequest request, Object userToChange)
{
// Change member role to manager
IMemberList memberlist = accessingWorkspaceMemberList(request);
// Retrieve list of members
IRole memberRole = memberlist.getRole(WorkspaceRole.MEMBER);
// Remove user from workspace
memberRole.removeUser(request.getUser(), userToChange);
// Retrieve list of managers
IRole managerRole = memberlist.getRole(WorkspaceRole.MANAGER);
// Adds user as manager
managerRole.addUser(request.getUser(), userToChange);
}
Example
private void changeWorkspaceOwnership(IPortalComponentRequest request, Object newOwner)
{
IMemberList memberlist = accessingWorkspaceMemberList(request);
memberlist.setOwner(request.getUser(), newOwner);
}