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.