Forums

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

Assign permission scheme to all Projects in a Project Category (Code/Scriptrunner)

Sngy November 6, 2020

Hello, 

I know how to assign a permission scheme of a Template Project to another Project:

 

import org.springframework.stereotype.Component;
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.workflow.AssignableWorkflowScheme;
import com.atlassian.jira.workflow.DraftWorkflowScheme;
import com.atlassian.jira.workflow.JiraWorkflow;
import com.atlassian.jira.workflow.WorkflowScheme;
import com.atlassian.jira.workflow.WorkflowSchemeManager;

def projectDefault = ComponentAccessor.getProjectManager().getProjectObjByKey("DPDefault");
def projectNeu = ComponentAccessor.getProjectManager().getProjectObjByKey("DPNeu");
ComponentAccessor.getWorkflowSchemeManager().removeSchemesFromProject(projectNeu);
ComponentAccessor.getWorkflowSchemeManager().addSchemeToProject(projectNeu, ComponentAccessor.getWorkflowSchemeManager().getSchemeFor(projectDefault));

But how do I do this to every single project of a project category? Or do I really need to change the permission scheme for each project in it? Thanks! 

2 answers

1 accepted

0 votes
Answer accepted
Leo
Community Champion
November 6, 2020

Hi @Sngy ,

Below code snippet may give you some idea, I didn't test this in my server though

import com.atlassian.jira.component.ComponentAccessor
def prcat = ComponentAccessor.getProjectManager().getProjectCategoryObjectByName("Code/Scriptrunner")
def prList = ComponentAccessor.getProjectManager().getProjectsFromProjectCategory(prcat)

prList.each{ proj ->
//code here
}
0 votes
SriC
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 28, 2021

Here is the working code, folks!! It perfectly works.

*Just copy and paste* in your Script Runner's Script Console. Replace the below Project keys with your list (you can put up to *50 Project keys in one go*.. it processed first 50 keys, when I added 75 keys) and replace the Target Permission Scheme name.
====================

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.project.Project

def list = ["Proj Key 1", "Proj Key 2", "Proj Key 3", "Proj Key 4"]

for(item in list){
def project = ComponentAccessor.getProjectManager().getProjectByCurrentKey(item)

log.warn("Project is:"+project)

String permissionScheme = "Target Permission Scheme"

ComponentAccessor.getPermissionSchemeManager().removeSchemesFromProject(project)
ComponentAccessor.getPermissionSchemeManager().addSchemeToProject(project, ComponentAccessor.getPermissionSchemeManager().getSchemeObject(permissionScheme))
}

Suggest an answer

Log in or Sign up to answer