Hello,
i'm trying to hide issuetypes in some projects for all project roles except one. it is working fine but instead mapping those projects in the behavior i want to group them as category and use it in JQL (Ex: Category in (Test1, Test2)) to add in the behavior. I tweak the following existing script for that requirement. it is not showing up any errors but it is not working. any suggestions would be appreciated.
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.security.roles.ProjectRoleManager
import com.onresolve.jira.groovy.user.FieldBehaviours
import com.atlassian.jira.issue.search.SearchProvider
import com.atlassian.jira.jql.parser.JqlQueryParser
import groovy.transform.BaseScript
import static com.atlassian.jira.issue.IssueFieldConstants.ISSUE_TYPE
@BaseScript FieldBehaviours fieldBehaviours
def jqlQueryParser = ComponentAccessor.getComponent(JqlQueryParser)
def searchProvider = ComponentAccessor.getComponent(SearchProvider)
def issueManager = ComponentAccessor.getIssueManager()
def projectRoleManager = ComponentAccessor.getComponent(ProjectRoleManager)
def allIssueTypes = ComponentAccessor.constantsManager.allIssueTypeObjects
def user = ComponentAccessor.jiraAuthenticationContext.loggedInUser
def issueTypeField = getFieldById(ISSUE_TYPE)
def remoteUsersRoles = projectRoleManager.getProjectRoles(user, issueContext.projectObject)*.name
def availableIssueTypes = []
def pluginAccessor = ComponentAccessor.getPluginAccessor()
// edit this query to suit
def query = jqlQueryParser.parseQuery("project in ProjectProperyValue(Xray)")
if ("Developers" in remoteUsersRoles) {
availableIssueTypes.addAll(allIssueTypes.findAll { it.name in ["Story","Epic","Bug","Task","Sub-task"] })
}
if ("Lead" in remoteUsersRoles) {
availableIssueTypes.addAll(allIssueTypes.findAll { it.name in ["Story","Epic","Bug","Task","Sub-task"] })
}
if ("Product Owner" in remoteUsersRoles) {
availableIssueTypes.addAll(allIssueTypes.findAll { it.name in ["Story","Epic","Bug","task","Sub-task"] })
}
if ("Scrum Master" in remoteUsersRoles) {
availableIssueTypes.addAll(allIssueTypes.findAll { it.name in ["Story","Epic","Bug","task","Sub-task"] })
}
if ("Xray" in remoteUsersRoles) {
availableIssueTypes.addAll(allIssueTypes.findAll { it.name in ["Bug","Epic","Task","Sub-task", "Story","Pre-Condition","Sub Test Execution","Test","Test Execution","Test Plan","Test Set"] })
}
issueTypeField.setFieldOptions(availableIssueTypes)
Thanks
Sai