Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

create custom scripted field in scriptrunner

Samar Elsayed October 22, 2021

Hi,

I need to get the groups that the logged in user belongs to and make these groups appear as options in a multi choice custom field.

below is the code that gets the groups :

 

import com.atlassian.jira.component.ComponentAccessor
import org.apache.log4j.Logger
import org.apache.log4j.Level


def logg = Logger.getLogger("")
logg.setLevel(Level.DEBUG)

def user = ComponentAccessor.jiraAuthenticationContext.loggedInUser
def groupManager = ComponentAccessor.groupManager

def group
def g_group
//def userManager = ComponentAccessor.userManager
//def userUtil = ComponentAccessor.userUtil
//

def groupsval = ComponentAccessor.groupManager.getGroupNamesForUser(user) as List

//return groupsval
for(int k=0; k<groupsval.size(); k++) {
group = groupsval.get(k)
// g_group = groupManager.getGroupObject(group)

return group

}

 

How can I do that in script runner ?

 I tried to create a multi group picker scripted field with multi group picker searcher but it gives me empty result as shown below :

,,,,,,,,

1 answer

Suggest an answer

Log in or Sign up to answer
0 votes
Antoine Berry
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
October 22, 2021

Hi @Samar Elsayed ,

I have modified your snippet a bit, could you try this one : 

import com.atlassian.jira.component.ComponentAccessor
import org.apache.log4j.Logger
import org.apache.log4j.Level


def logg = Logger.getLogger("")
logg.setLevel(Level.DEBUG)

def user = ComponentAccessor.jiraAuthenticationContext.loggedInUser

def groupsval = ComponentAccessor.groupManager.getGroupsForUser(user)
return groupsval

Antoine

Samar Elsayed October 22, 2021

Hi @Antoine Berry ,

 

I have tried that already but it still gives me :

,

 

I have tried to use a custom template instead of group picker :

Capture.PNG

but it gives me the whole list when I use only 

return groupsval

 as below :

[confluence-administrators, agile team]

and when I use the for loop for the list, I get the first element only :

 

Capture.PNG

Like Antoine Berry likes this
Samar Elsayed October 22, 2021

@Antoine Berry  do you know how can I get all the groups to appear as options not just one? 

Antoine Berry
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
October 25, 2021

Hi @Samar Elsayed ,

This is my configuration : image.png

Using my script above, this is the output on the view screen of an issue : image.png

As you can see this is working correctly. Please remember that a script field only calculates values, but does not provide a list of option (meaning that it will only be available on view screen).

If you want the user to select a group among the user groups, you would need to create a group picker, and update options with a behaviour script.

Samar Elsayed October 25, 2021

@Antoine Berry thank you. can you please give me an example about how to do that in 

a behaviour ?

Like Antoine Berry likes this
Antoine Berry
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
October 27, 2021

Hi @Samar Elsayed ,

Actually using a group picker field, I think you could only auto-select the user's groups, but not restrict its values.

You could restrict the values of a regular select list, but this would mean having all the groups as options in the field configuration (= a lot of maintenance).

Alternatively you could throw an error if the group selected is not one of the current user's.

TAGS
AUG Leaders

Atlassian Community Events