ScriptRunner, post-function script, changing issue security by custom-field value, how?

IT Accounts April 17, 2016

Creating: "Custom script post-function"


import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.security.groups.GroupManager;

import com.atlassian.jira.issue.IssueManager;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.MutableIssue;

 

GroupManager groupManager = ComponentManager.getComponentInstanceOfType(GroupManager.class)


if (cfValues['selectBoxCustomField']?.value == 'Value1') {
issue.setSecurityL
} else if (cfValues['selectBoxCustomField']?.value == 'Value2') {
issue.setSecurityLevelId(10105)
} else if (cfValues['selectBoxCustomField']?.value == 'Value3') {
issue.setSecurityLevelId(10104)
} else if (cfValues['selectBoxCustomField']?.value == 'Value4')) {
issue.setSecurityLevelId(10103)
}


cfValues['selectBoxCustomField']?.value == 'Value1' fires exception. How can I retrieve "selectBoxCustomField" value?  

2 answers

1 accepted

0 votes
Answer accepted
JamieA
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.
April 17, 2016
import com.atlassian.jira.component.ComponentAccessor

def customFieldManager = ComponentAccessor.getCustomFieldManager()
def cf = customFieldManager.getCustomFieldObjectByName("Name of select box field")

def optString = issue.getCustomFieldValue(cf)?.value
if (optString == "Value") {
    ...
}
else if (...) {
    ....
}
0 votes
IT Accounts April 17, 2016

Thank you! 

I've just found solution myself, but yours is shorter:

 

import com.atlassian.crowd.embedded.api.User
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.MutableIssue

MutableIssue issue = issue

def customFieldManager = ComponentAccessor.getCustomFieldManager()
def textFieldCf = customFieldManager.getCustomFieldObjectByName("GRS area")
def cfvalue = issue.getCustomFieldValue(textFieldCf)

String value = cfvalue.toString()

if (value == 'value1') {
issue.setSecurityLevelId((long)10715) 
} else if (value == 'value2') {
issue.setSecurityLevelId((long)10705) 
}

 

JamieA
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.
April 17, 2016

that will fail when there is no option set... so mine uses ?

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events