Forums

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

How to add a user as admin in hundreds of projects at once.

Jason Liu
Contributor
November 10, 2021

Hi, May I know how to add a user as admin or other roles in hundreds of projects at once? Please give specific operation steps. Thank you so much.

3 answers

0 votes
Fabio Racobaldo _Herzum_
Community Champion
November 10, 2021

Hi @Jason Liu ,

using script runner (Script console), you can add user as project admin using the following code :

import com.atlassian.jira.bc.projectroles.ProjectRoleService
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.security.roles.ProjectRoleActor
import com.atlassian.jira.security.roles.ProjectRoleManager
import com.atlassian.jira.util.SimpleErrorCollection

def groupManager = ComponentAccessor.getGroupManager()
def projectManager = ComponentAccessor.getProjectManager()
def projectRoleService = ComponentAccessor.getComponent(ProjectRoleService)
def projectRoleManager = ComponentAccessor.getComponent(ProjectRoleManager)
def errorCollection = new SimpleErrorCollection()

def projects = ["projectkey1", "projectkey2", "projectkey3"]

for (pname in projects)
{
def actors = ['user_name_of_user_to_be_added']
def project = projectManager.getProjectObjByKey(pname)
def projectRole = projectRoleManager.getProjectRole("Administrators")
def projectService = ComponentAccessor.getComponentOfType(ProjectRoleService.class);

projectRoleService.addActorsToProjectRole(
actors,
projectRole,
project,
ProjectRoleActor.USER_ROLE_ACTOR_TYPE,
errorCollection)
}

Hope this helps,

Fabio 

Jason Liu
Contributor
November 15, 2021

Hi Fabio,

Thank you so much for your support. I have tried your runner. But nothing happened. Could you help me check where I'm wrong? 

import com.atlassian.jira.bc.projectroles.ProjectRoleService

import com.atlassian.jira.component.ComponentAccessor

import com.atlassian.jira.security.roles.ProjectRoleActor

import com.atlassian.jira.security.roles.ProjectRoleManager

import com.atlassian.jira.util.SimpleErrorCollection

 

def groupManager = ComponentAccessor.getGroupManager()

def projectManager = ComponentAccessor.getProjectManager()

def projectRoleService = ComponentAccessor.getComponent(ProjectRoleService)

def projectRoleManager = ComponentAccessor.getComponent(ProjectRoleManager)

def errorCollection = new SimpleErrorCollection()

 

def projects = ["LHWTST", "LHWTES", "LHWTST112"]

 

for (pname in projects)

{

   def actors = ['gaoji1@lenovo.com']

   def project = projectManager.getProjectObjByKey(pname)

   def projectRole = projectRoleManager.getProjectRole("Administrators")

   def projectService = ComponentAccessor.getComponentOfType(ProjectRoleService.class);

 

   projectRoleService.addActorsToProjectRole(

     actors,

     projectRole,

     project,

     ProjectRoleActor.USER_ROLE_ACTOR_TYPE,

     errorCollection)

}

Fabio Racobaldo _Herzum_
Community Champion
November 15, 2021

Hi @Jason Liu ,

are u sure that 'gaoji1@lenovo.com' is the USERNAME of your user? 

Fabio

Jason Liu
Contributor
November 15, 2021

Hi Fabio,

 

I also tried "gaoji1" and nothing happened. User name can only be gaoji1 or gaoji1@lenovo.com. I have mapped the projects and all issue types also. Is there any other possible reason?

0 votes
Kristján Geir Mathiesen
Community Champion
November 10, 2021

@Jason Liu 

One way to do this is to use for example ScriptRunner and run a script that populates a certain role with a certain user or a certain group.

HTH,
KGM

0 votes
Martin Bayer _MoroSystems_ s_r_o__
Community Champion
November 10, 2021

 Hi @Jason Liu it depends on your configuration. For example if you use one permission scheme for all the projects, you can easily add single user to the specific permission and it is set on every project.

Can you describe your environment in more detail?

Suggest an answer

Log in or Sign up to answer