Hello EveryOne,
I am having issue on adding a user to the user Picker Custom Field "Customer Watchers".
I am using 2 parts user information are fetched from ADFS.
Part 1. I am removing watchers based on certain mailID.(it is working fine)
Part 2. I need to add same user which are being removed as watchers must be added in the "Customer Watchers" field.
My script do-not through any error but still its not adding user to field.
Manually i am able to add same user. please help. Script is here
//Custom Field Access
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder;
import com.atlassian.jira.issue.ModifiedValue;
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.link.IssueLinkManager
import com.atlassian.jira.user.ApplicationUser
import com.atlassian.crowd.embedded.api.User
import com.atlassian.jira.user.util.UserManager
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.event.type.EventDispatchOption
import org.apache.log4j.Category
import com.atlassian.jira.issue.watchers.IssueWatcherAccessor
import com.atlassian.jira.issue.watchers.WatcherManager
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.user.util.DefaultUserManager
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.issue.util.IssueChangeHolder
import com.atlassian.jira.user.util.UserUtil;
import org.apache.log4j.Logger;
Logger log = Logger.getLogger("Deletion of Watchers from the issue");
log.setLevel(org.apache.log4j.Level.DEBUG);
def logPrefix ="Deletion of Watchers from the issue" + issue.getKey() + "***********************************************************************************" ;
try{
Locale en = new Locale("en");
IssueWatcherAccessor iwa = ComponentAccessor.getComponent(IssueWatcherAccessor.class)
def list = iwa.getWatchers(issue,en);
log.debug(logPrefix+ "All watchers are::" + list);
CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager();
def cfCustomerWatchers = "Customer Watchers";
cfCustomerWatchersObj = customFieldManager.getCustomFieldObjectByName(cfCustomerWatchers);
for (i in list )
{
def user = i;
def watcherUser = ComponentAccessor.getUserManager().getUserByKey(user.toString().split(":")[0]);
def emailIDUser = watcherUser.getEmailAddress();
if(!emailIDUser.contains("abc.com") && !emailIDUser.contains("def.com") && !emailIDUser.contains("ghz.com") )
{
def watcherManager = ComponentAccessor.getWatcherManager();
watcherManager.stopWatching(user, issue);
log.debug(logPrefix + "Current removed watcher emailID is :: " + emailIDUser);
// List<ApplicationUser> users;
// users.add(ComponentAccessor.getUserManager().getUserByName(user.toString().split(":")[0]))
// issue.setCustomFieldValue(cfCustomerWatchersObj, users);
issue.setCustomFieldValue(cfCustomerWatchersObj, watcherUser.toString());
}
}
}
catch(Exception e){
log.error(logPrefix + e.getMessage());
}