Hi Community,
I want to restrict the visibility of select list (multiple choice) field options to specific user groups and on a Create transition using Scriptrunner for Jira Cloud.
My use-case is: On Create View,
- If currentUser is from Admin group, then show all options ("Bitbucket", "Confluence", "Jira") in multi-select field Platform drop-down.
- If currentUser is from User group, then show options ("Confluence" & "Jira") but hide ("Bitbucket") in multi-select field drop-down.
- If currentUser is from Developer group, then show options ("Bitbucket", "Confluence") but hide ("Jira") in multi-select field drop down.
I am able to code my request in groovy in Jira Data Center as below:
import com.atlassian.jira.component.ComponentAccessor
def groupManager = ComponentAccessor.getGroupManager()
def group1 = ComponentAccessor.groupManager.getGroup("User Group")
def group2 = ComponentAccessor.groupManager.getGroup("Developer Group")
def group3 = ComponentAccessor.groupManager.getGroup("Admin Group")
def currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
def customFieldManager = ComponentAccessor.customFieldManager
def optionsManager = ComponentAccessor.optionsManager
def platformQus = getFieldByName("Platform")
def platformQusCF = customFieldManager.getCustomFieldObjectsByName("Platform")[0]
def config = platformQusCF.getRelevantConfig(getIssueContext())
def options = optionsManager.getOptions(config)
if((ComponentAccessor.getGroupManager().getGroupsForUser(currentUser)?.find
{(it.name == "User Group") || it.name == "Admin Group" && it.name != "Developer Group"}))
{def newOptions = options.findAll
{it.value in ["Jira", "Confluence"]}
platformQus.setFieldOptions(newOptions)
}
else if((ComponentAccessor.getGroupManager().getGroupsForUser(currentUser)?.find
{(it.name == "Developer Group") || it.name == "Admin Group" && it.name != "User Group"}))
{def newOptions = options.findAll
{it.value in ["Bitbucket", "Confluence"]}
platformQus.setFieldOptions(newOptions)
}
else
{ def newOptions = options.findAll
{it.value in ["Confluence", "Bitbucket", "Jira"]}
platformQus.setFieldOptions(newOptions)
}
But I want to code the same logic in Jira Cloud using Scriptrunner behavior.
Please guide on how we can achieve the above.
Thanks