Hey, I have the following code that updates all the filters in our Jira instance to ADD the view "All logged in users", but I'm running into difficulties when a filter already has a specified view. This script clashes with that and Jira gives the warning that "all logged in users view cannot be used with others.
I've been searching how to modify this code to replace all current views instead of add, but haven't had any luck. I'm thinking the offending line of code is:
permissionsSet.add(new SharePermissionImpl(Name.AUTHENTICATED, null, null));
Can anyone help modifying this to REPLACE all views, and not merely ADD an new view?
Here is my full script:
import com.atlassian.jira.sharing.SharePermissionImpl
import com.atlassian.jira.sharing.SharePermission
import com.atlassian.jira.bc.user.search.UserSearchService
import com.atlassian.jira.bc.user.search.UserSearchParams
import com.atlassian.jira.sharing.SharePermissionImpl
import com.atlassian.jira.sharing.SharedEntity.SharePermissions
import com.atlassian.jira.sharing.type.ShareType.Name
import com.atlassian.jira.user.ApplicationUser
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.search.SearchRequest
import com.atlassian.jira.bc.filter.SearchRequestService
import com.atlassian.jira.issue.search.SearchRequestManager
def userSearchService = ComponentAccessor.getComponent(UserSearchService)
def userSearchParams = new UserSearchParams.Builder()
.allowEmptyQuery(true)
.ignorePermissionCheck(true)
.maxResults(10000) //Sets the number of users to search
.build()
def allUsers = userSearchService.findUserNames("", userSearchParams)
for (String item : allUsers) {
ApplicationUser user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser();
def filterUser = ComponentAccessor.getUserManager ().getUserByName (item)
SearchRequestService searchRequestService = ComponentAccessor.getComponent(SearchRequestService.class)
Collection<SearchRequest> searchRequests = searchRequestService.getOwnedFilters(filterUser).each{filter->
SearchRequestManager srm = ComponentAccessor.getComponent(SearchRequestManager.class);
Set<SharePermission> permissionsSet = new HashSet<SharePermission>(
filter.getPermissions().getPermissionSet()
);
permissionsSet.add(new SharePermissionImpl(Name.AUTHENTICATED, null, null));
filter.setPermissions(new SharePermissions(permissionsSet));
srm.update(user, filter);
}
}