1 package net.ramapuram.thomas.webapp.action;
2
3 import com.opensymphony.xwork2.ActionSupport;
4 import org.apache.commons.logging.Log;
5 import org.apache.commons.logging.LogFactory;
6 import org.apache.struts2.ServletActionContext;
7 import net.ramapuram.thomas.Constants;
8 import net.ramapuram.thomas.model.User;
9 import net.ramapuram.thomas.service.MailEngine;
10 import net.ramapuram.thomas.service.RoleManager;
11 import net.ramapuram.thomas.service.UserManager;
12 import org.springframework.mail.SimpleMailMessage;
13
14 import javax.servlet.http.HttpServletRequest;
15 import javax.servlet.http.HttpServletResponse;
16 import javax.servlet.http.HttpSession;
17 import java.util.ArrayList;
18 import java.util.HashMap;
19 import java.util.List;
20 import java.util.Map;
21
22
23
24
25
26
27
28
29
30
31 public class BaseAction extends ActionSupport {
32 private static final long serialVersionUID = 3525445612504421307L;
33
34
35
36
37 public static final String CANCEL = "cancel";
38
39
40
41
42 protected final transient Log log = LogFactory.getLog(getClass());
43
44
45
46
47 protected UserManager userManager;
48
49
50
51
52 protected RoleManager roleManager;
53
54
55
56
57 protected String cancel;
58
59
60
61
62 protected String from;
63
64
65
66
67 protected String delete;
68
69
70
71
72 protected String save;
73
74
75
76
77 protected MailEngine mailEngine;
78
79
80
81
82 protected SimpleMailMessage mailMessage;
83
84
85
86
87 protected String templateName;
88
89
90
91
92
93
94 public String cancel() {
95 return CANCEL;
96 }
97
98
99
100
101
102
103 @SuppressWarnings("unchecked")
104 protected void saveMessage(String msg) {
105 List messages = (List) getRequest().getSession().getAttribute("messages");
106 if (messages == null) {
107 messages = new ArrayList();
108 }
109 messages.add(msg);
110 getRequest().getSession().setAttribute("messages", messages);
111 }
112
113
114
115
116
117
118
119 protected Map getConfiguration() {
120 Map config = (HashMap) getSession().getServletContext().getAttribute(Constants.CONFIG);
121
122 if (config == null) {
123 return new HashMap();
124 }
125 return config;
126 }
127
128
129
130
131
132
133 protected HttpServletRequest getRequest() {
134 return ServletActionContext.getRequest();
135 }
136
137
138
139
140
141
142 protected HttpServletResponse getResponse() {
143 return ServletActionContext.getResponse();
144 }
145
146
147
148
149
150
151 protected HttpSession getSession() {
152 return getRequest().getSession();
153 }
154
155
156
157
158
159
160
161
162 protected void sendUserMessage(User user, String msg, String url) {
163 if (log.isDebugEnabled()) {
164 log.debug("sending e-mail to user [" + user.getEmail() + "]...");
165 }
166
167 mailMessage.setTo(user.getFullName() + "<" + user.getEmail() + ">");
168
169 Map<String, Object> model = new HashMap<String, Object>();
170 model.put("user", user);
171
172
173 model.put("message", msg);
174 model.put("applicationURL", url);
175 mailEngine.sendMessage(mailMessage, templateName, model);
176 }
177
178 public void setUserManager(UserManager userManager) {
179 this.userManager = userManager;
180 }
181
182 public void setRoleManager(RoleManager roleManager) {
183 this.roleManager = roleManager;
184 }
185
186 public void setMailEngine(MailEngine mailEngine) {
187 this.mailEngine = mailEngine;
188 }
189
190 public void setMailMessage(SimpleMailMessage mailMessage) {
191 this.mailMessage = mailMessage;
192 }
193
194 public void setTemplateName(String templateName) {
195 this.templateName = templateName;
196 }
197
198
199
200
201
202
203 public void setFrom(String from) {
204 this.from = from;
205 }
206
207 public void setDelete(String delete) {
208 this.delete = delete;
209 }
210
211 public void setSave(String save) {
212 this.save = save;
213 }
214 }