Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Changing filter owner with groovy

Vivian Escalante
Contributor
May 3, 2018

Hello all, 

I am trying to change the owner of a filter, but I'm not being successful. Any idea why? Any validations that I need to do? Omitted all the imports for clarity. 

def decomUser= userManager.getUserByName("vescalante")
def targetUser = userManager.getUserByName("gcheung")
def loggedInUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()

// Reassign all filters
SearchRequestService searchRequestService = ComponentAccessor.getComponent(SearchRequestService.class)
def contextImpl = new JiraServiceContextImpl(decomUser)

Collection<SearchRequest> searchRequests = searchRequestService.getOwnedFilters(decomUser)

if(searchRequests.size() > 0) {
searchRequests.each { s ->
s.setOwner(targetUser)
searchRequestService.updateFilter(contextImpl, s)
}
} else {
commentText << "\n\n (/) User *_${decomUser.getName()}_* doesn't own any filters, no reassignment required."
}
log.warn(commentText)

2 answers

1 accepted

Suggest an answer

Log in or Sign up to answer
1 vote
Answer accepted
Vivian Escalante
Contributor
May 15, 2018

Got it. I had to validate the change. 

searchRequestService.validateFilterForChangeOwner(jiraServiceContextImpl, s)
if (jiraServiceContextImpl.errorCollection.hasAnyErrors()){
        log.error(iraServiceContextImpl.getErrorCollection())
}
else{
       s.setOwner(targetUser)
       searchRequestService.updateFilterOwner(jiraServiceContextImpl, loggedInUser, s)
}

 

Maitrey Patel March 2, 2021

Hi Vivian,

Can you please share the full script again?

Thanks in advanced,
Maitrey

2 votes
Brittany Wispell
Community Champion
May 3, 2018

Hey @Vivian Escalante

What version of ScriptRunner do you have? I believe you can do this with the built-in scripts Change dashboard or filter ownership. To get to the built-in scripts area you'll need to go to Add-ons > ScriptRunner > Built-in Scripts. Hope this helps! 

See below images. 

Screen Shot 2018-05-03 at 3.21.51 PM.png

Screen Shot 2018-05-03 at 3.22.03 PM.png

Vivian Escalante
Contributor
May 8, 2018

I'm trying to do this through a groovy script, but thank you. I'm aware this exists. I was able to figure it out! 

Joshua DeClerck
Contributor
October 26, 2018

Just to throw out why the built-in script approach didn't work for me: it uses a user lookup for the From user field. If this was a free text box, it'd be better, but because it looks up usernames and only accepts a "valid" user, the built-in script is pretty useless when working with deactivated/deleted accounts.

Like # people like this
Ole Markus Pedersen January 9, 2020

Hi @Vivian Escalante , did you get this to work with private filters? I get it to work if I share it before running the script but when its private I get this:

The filter is not shared with anyone. You cannot change the owner of private filters.

I know this is a old thread but I have been looking around and this was so close to what I need that I give it a go.

 

br Ole

TAGS
AUG Leaders

Atlassian Community Events