Synchronize Custom Field Values
Synchronize Custom Field Values
/**
* Available since TGE 1.19 only!
*/
import com.atlassian.crowd.embedded.api.User
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.security.JiraAuthenticationContext
import com.atlassian.jira.user.ApplicationUser
import com.atlassian.plugin.PluginAccessor
// get current user
JiraAuthenticationContext jiraAuthenticationContext = ComponentAccessor.getOSGiComponentInstanceOfType(JiraAuthenticationContext.class);
Object userObject = jiraAuthenticationContext.getLoggedInUser();
User user = userObject instanceof ApplicationUser ? ((ApplicationUser) userObject).getDirectoryUser() : (User) userObject;
// get data manager
PluginAccessor pluginAccessor = ComponentAccessor.getPluginAccessor();
Class dataManagerClass = pluginAccessor.getClassLoader().findClass("com.idalko.jira.plugins.igrid.api.data.TGEGridTableDataManager");
def tgeGridDataManager = ComponentAccessor.getOSGiComponentInstanceOfType(dataManagerClass);
// initialize synchronization
StringBuilder result = new StringBuilder();
try {
tgeGridDataManager.synchronizeCustomFieldValues(user);
result.append("Custom field values synchronization is initialized.\n");
} catch(Exception e) {
result.append("Custom field values cannot be synchronized due to error: " + e.getMessage() + "\n");
}
println(result.toString());
return result.toString();