Snippets

Exalate Set Approvers

Created by Francis Martens
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.security.roles.ProjectRole
import com.atlassian.jira.security.roles.ProjectRoleActors
import com.atlassian.jira.security.roles.ProjectRoleManager
import com.atlassian.jira.user.ApplicationUser

// FieldValueUtil is a class of methods allowing to get and set customfields
import com.idalko.jira.groovy.FieldValueUtil                  

import org.apache.log4j.Logger
import com.atlassian.jira.util.ImportUtils


// Ensure that changes are indexed properly

boolean wasIndexing = ImportUtils.isIndexIssues();
ImportUtils.setIndexIssues(true);

Logger log = Logger.getLogger("com.idalko.scripts");

ProjectRoleManager projectRoleManager = ComponentAccessor.getComponentOfType(ProjectRoleManager.class);



//******************    APPROVERS *****************************************

// get the list of approvers from the project role
ProjectRole approverRole = projectRoleManager.getProjectRole("Approvers");
if (approverRole == null) {
    log.error("No 'Approvers' role found - is it configured ?")
    ImportUtils.setIndexIssues(wasIndexing);
    return;
}
ProjectRoleActors approverActors = projectRoleManager.getProjectRoleActors(approverRole, issue.getProjectObject())
if (approverActors == null) {
    log.error("No approver actors found");
    ImportUtils.setIndexIssues(wasIndexing);
    return;
}


Set<ApplicationUser> defaultApprovers = approverActors.getApplicationUsers();
log.debug("default approvers = ${defaultApprovers}")
FieldValueUtil fvuApprovers = new FieldValueUtil("Approvers");
fvuApprovers.doSetFieldValue(issue, defaultApprovers);

//******************    READERS *****************************************
ProjectRole readerRole = projectRoleManager.getProjectRole("Readers");
if (readerRole == null) {
    log.error("No 'Readers' role found - is it configured ?")
    ImportUtils.setIndexIssues(wasIndexing);
    return;
}
ProjectRoleActors readerActors = projectRoleManager.getProjectRoleActors(readerRole, issue.getProjectObject())
if (readerActors == null) {
    log.error("No reader actors found");
    ImportUtils.setIndexIssues(wasIndexing);
    return;
}


Set<ApplicationUser> defaultReaders = readerActors.getApplicationUsers();
FieldValueUtil fvuReaders = new FieldValueUtil("Readers");
fvuReaders.doSetFieldValue(issue, defaultReaders);

ImportUtils.setIndexIssues(wasIndexing);

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.