1 package com.atlassian.jira.portal;
2
3 import java.util.Map;
4 import java.util.TreeMap;
5
6 import org.apache.log4j.Category;
7
8 import com.atlassian.configurable.ValuesGenerator;
9 import com.atlassian.jira.ComponentManager;
10 import com.atlassian.jira.ManagerFactory;
11 import com.atlassian.jira.config.KaamelotKeys;
12 import com.atlassian.jira.config.properties.ApplicationProperties;
13 import com.atlassian.jira.security.JiraAuthenticationContext;
14 import com.opensymphony.user.EntityNotFoundException;
15 import com.opensymphony.user.User;
16 import com.opensymphony.user.UserManager;
17
18
19
20
21
22
23
24
25
26 public class AutoTransitionServiceSearcherValuesGenerator implements ValuesGenerator {
27
28 protected final static Category log = Category.getInstance(AutoTransitionServiceSearcherValuesGenerator.class);
29
30 protected static ApplicationProperties applicationProperties = ManagerFactory.getApplicationProperties();
31
32 protected static UserManager userManager = (UserManager) ComponentManager.getComponentInstanceOfType(UserManager.class);
33
34
35
36 public Map getValues(Map arg0) {
37 Map values = new TreeMap();
38 appendUser(values,getRemoteUser());
39 appendUser(values,getDefaultSearcher());
40 return values;
41 }
42
43
44
45
46
47 protected void appendUser(Map _values, User _user) {
48 if (_user != null) {
49 _values.put(_user.getName(), _user.getFullName());
50 }
51 }
52
53
54
55
56 protected User getRemoteUser() {
57 JiraAuthenticationContext authenticationContext = (JiraAuthenticationContext) ComponentManager.getComponentInstanceOfType(JiraAuthenticationContext.class);
58 return authenticationContext.getUser();
59 }
60
61
62
63
64 protected User getDefaultSearcher() {
65 String defaultSearcher = applicationProperties.getString(KaamelotKeys.DEFAULT_AUTO_TRANSITION_SERVICE_SEARCHER_USER);
66 User defaultSearcherUser = null;
67 try {
68 defaultSearcherUser = userManager.getUser(defaultSearcher);
69 } catch (EntityNotFoundException e) {
70 log.error("Service configuration error: cannot find user (" + defaultSearcher + ").");
71 return null;
72 }
73 return defaultSearcherUser;
74 }
75
76
77 }