You're on your way to the next level! Join the Kudos program to earn points and save your progress.
Level 1: Seed
25 / 150 points
Next: Root
1 badge earned
Challenges come and go, but your rewards stay with you. Do more to earn more!
What goes around comes around! Share the love by gifting kudos to your peers.
Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!
Join now to unlock these features and more
The Atlassian Community can help you and your team get more value out of Atlassian products and practices.
Hello
I'm trying to create a field validation using behaviour, that I would like to run whenever someone changes the reporter of an issue (during creation or elsewhere in edit mode).
Basically, we need to make sure that the Reporter always belongs to a specific group.
I have tried something like the following, but without success.
//Required Imports
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.user.ApplicationUser
def groupManager = ComponentAccessor.getGroupManager()
// Get a pointer to the reporter field and get user
def ReporterField = getFieldById("reporter")
def ReporterValue = ReporterField.value as ApplicationUser
if(groupManager.isUserInGroup(ReporterValue, 'ReportersGroup')){
ReporterField.setError("Reporter must be in Reporters group.")
ReporterField.setFormValue(null)
}else{
// If a valid value is entered clear any errors and accept the value
ReporterField.clearError()
}
Please help!
Ok, I got it to work with this:
//Required Imports
import com.atlassian.jira.component.ComponentAccessor
def groupManager = ComponentAccessor.getGroupManager()
def userManager = ComponentAccessor.getUserManager()
// Get a pointer to the reporter field and get user
def reporterField = getFieldById("reporter")
def reporterValue = reporterField.getValue()
def reporterUser = userManager.getUserByName(reporterValue.toString())
if ( groupManager.isUserInGroup(reporterUser , "ReportersGroup")){
// Reporter is in the right group - clear all errors
reporterField.clearError()
}else{
// Reporter is not in the group, show error
reporterField.setError("Reporter must be in the Reporters group.")
reporterField.setFormValue(null)
}
Maybe try
def userManager = ComponentAccessor.userManager
def reporterUser = userManager.getUserByName(ReporterField.value)
if(groupManager.isUserInGroup(reporterUser , 'ReportersGroup'){
...
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
DId you actually try to run it?
Those static type checking errors are normal and expected with this. I generally ignore them.
But if you really need to eliminate the static type checking errors you could try
def userManager = ComponentAccessor.userManager
ApplicationUser reporterUser = userManager.getUserByName(ReporterField.value as String)
if(groupManager.isUserInGroup(reporterUser , 'ReportersGroup'){
...
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I did not, no. I didn't know it could work even with the errors that were shown. Anyway, I did fix it in a way similar to yours, so, thanks!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.