Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

How to create a mailing list based on the user's group?

Seb Blandin
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
October 4, 2021

Before the upgrade to Confluence 7.4.8, we created this user macro to retrieve and create a miling list based on the user's group of a wiki space.

 

Unfortunately since the upgrade, the macro is not working anymore. Is there anyone in the community who could help us to make it work for Confluence 7.4.8 ?

 

## Macro title: Mailing list
## Macro has a body: N
## Developed by:
## Date created: 12/04/2017
## Installed by: 

## @Param Group:title=Group Name|type=string|required=true|desc=The key of the group


#set($containerManagerClass = $action.class.forName('com.atlassian.spring.container.ContainerManager'))
#set($getInstanceMethod = $containerManagerClass.getDeclaredMethod('getInstance',null))
#set($containerManager = $getInstanceMethod.invoke(null,null))
#set($containerContext = $containerManager.containerContext)

#set($userAccessor = $containerManager.containerContext.getComponent('userAccessor'))
#set($groupManager = $containerManager.containerContext.getComponent("groupManager"))
#set($group = $groupManager.getGroup($paramGroup))
#set($users = $userAccessor.getMemberNamesAsList($group))

<div>
#foreach($username in $users)
#set($user = $userAccessor.getUserByName($username))
${user.email}
#end
</div>

1 answer

0 votes
Nicolas Casel
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 22, 2022

Hello @Seb Blandin  ,

Here is the solution:

## @param Group:title=Group Name|type=string|required=true|desc=The key of the group
## @param Delimiter:title=Delimiter|type=string|required=true|desc=The symbol to separate the e-mail addresses


#set($containerManagerClass = $action.class.forName('com.atlassian.spring.container.ContainerManager'))
#set($getInstanceMethod = $containerManagerClass.getDeclaredMethod('getInstance',null))
#set($containerManager = $getInstanceMethod.invoke(null,null))
#set($containerContext = $containerManager.containerContext)

#set($userAccessor = $containerManager.containerContext.getComponent('userAccessor'))
#set($groupManager = $containerManager.containerContext.getComponent("groupManager"))
#set($group = $userAccessor.getGroup($paramGroup))
#set($users = $userAccessor.getMemberNamesAsList($group))

<strong>$paramGroup</strong>
<br /><br />
#foreach( $username in $users)
#set($user = $userAccessor.getUserByName($username))
$user.email$paramDelimiter
#end

 

Inspired by:  https://community.atlassian.com/t5/Confluence-questions/Is-it-possible-to-read-out-all-crowd-user-groups-with-their/qaq-p/1875263

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events