List all users
Confluence 2.1 and above
Actual classes may differ depending on your version of confluence
Does not work with LDAP
Beanshell
{beanshell:output=wiki} import com.atlassian.confluence.user.UserAccessor; import bucket.container.ContainerManager; import com.atlassian.user.search.page.Pager; import java.util.Iterator; import com.atlassian.user.impl.osuser.OSUUser; import com.atlassian.user.impl.osuser.OSUGroup; UserAccessor userAccessor = (UserAccessor) ContainerManager.getInstance().getContainerContext().getComponent("userAccessor"); Pager users = userAccessor.getUsers(); out.println("|| User ID || Full name || Email || Groups ||"); Iterator userIterator = users.iterator(); while (userIterator.hasNext()) { OSUUser user = (OSUUser) userIterator.next(); Pager groupList = userAccessor.getGroups(user); Iterator groupIterator = groupList.iterator(); String groups = new String(); while (groupIterator.hasNext()) { groups += groupIterator.next().getName() + " \\\\ "; } out.println("| " + user.getName() + " | [~" + user.getName() + "] | [mailto:" + user.getEmail() + "] | " + groups + "|"); } {beanshell}
Groovy
{groovy:output=wiki} import bucket.container.ContainerManager out.println "|| User ID || Full name || Email || Groups ||" def userAccessor = ContainerManager.instance.containerContext.getComponent("userAccessor") userAccessor.users.each { user -> def groups = userAccessor.getGroups(user).iterator()*.name.join(' \\\\ ') out.println "| $user.name | [~$user.name] | [mailto:$user.email] | $groups |" } {groovy}
Typical output