Bulk update usernames in JIRA 7 / DelegatingApplicationUser constructor

Ryan Faith April 10, 2017

I'm following the groovy script in here: https://community.atlassian.com/t5/JIRA-questions/How-to-bulk-rename-username/qaq-p/216275

The DelegatingApplicationUser constructor now has an extra field (id) that is not documented. (https://docs.atlassian.com/jira/7.1.6/com/atlassian/jira/user/DelegatingApplicationUser.html)

What is the id supposed to be?

Here is my script as it stands now:

import com.atlassian.jira.user.DelegatingApplicationUser
import com.atlassian.crowd.embedded.impl.ImmutableUser
import com.atlassian.jira.user.ApplicationUsers
import com.atlassian.jira.user.ApplicationUser
import com.atlassian.jira.user.util.UserManager;
import com.atlassian.crowd.embedded.api.User;
import com.atlassian.jira.component.ComponentAccessor;
def groupManager = ComponentAccessor.getGroupManager()
def userManager = ComponentAccessor.getUserManager()
Map<String, String> nameMap = new TreeMap<>();
List<String> ignoreList = Arrays.asList("e.shoemaker", "otto.meta", "integration", "salesforce.auto", "aha.user", "pm.implementation", "sysadmin");
for (ApplicationUser user : groupManager.getUsersInGroup("jira-users")) {
	if (!ignoreList.contains(user.getKey())) {
    	nameMap.put(user.getKey(), user.getEmailAddress());
        ImmutableUser.Builder builder = ImmutableUser.newUser(ApplicationUsers.toDirectoryUser(user));
        builder.name(user.getEmailAddress().toLowerCase());
        userManager.updateUser(new DelegatingApplicationUser(0, user.getKey(), builder.toUser()));
    }
}

1 answer

1 accepted

1 vote
Answer accepted
Ryan Faith April 10, 2017

I ended up using 0L for id and it seemed ok with it.

Suggest an answer

Log in or Sign up to answer