1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package de.fraunhofer.fokus.oefit.particity.portlet;
35
36 import java.util.List;
37
38 import javax.portlet.ActionRequest;
39 import javax.portlet.ActionResponse;
40 import javax.portlet.PortletRequest;
41 import javax.portlet.RenderRequest;
42 import javax.servlet.http.HttpServletRequest;
43 import javax.servlet.http.HttpServletResponse;
44
45 import com.liferay.portal.kernel.exception.SystemException;
46 import com.liferay.portal.kernel.servlet.ServletResponseUtil;
47 import com.liferay.portal.kernel.util.WebKeys;
48 import com.liferay.portal.model.Role;
49 import com.liferay.portal.model.User;
50 import com.liferay.portal.theme.ThemeDisplay;
51 import com.liferay.portal.util.PortalUtil;
52
53 import de.fraunhofer.fokus.oefit.adhoc.custom.Constants;
54 import de.fraunhofer.fokus.oefit.adhoc.custom.CustomPortalServiceHandler;
55 import de.fraunhofer.fokus.oefit.adhoc.custom.E_ConfigKey;
56 import de.fraunhofer.fokus.oefit.adhoc.custom.E_Role;
57
58
59
60
61 public class BaseController {
62
63
64
65
66
67
68
69
70 protected void copyRenderParameter(final String name,
71 final ActionRequest request, final ActionResponse response) {
72 final String paramValue = request.getParameter(name);
73 if (paramValue != null) {
74 response.setRenderParameter(name, paramValue);
75 }
76 }
77
78
79
80
81
82
83
84 protected Long getCompanyId(final PortletRequest request) {
85 final ThemeDisplay themeDisplay = (ThemeDisplay) request
86 .getAttribute(WebKeys.THEME_DISPLAY);
87 return themeDisplay.getCompanyId();
88 }
89
90 private String getGlobalParam(final PortletRequest request,
91 final String name) {
92 return PortalUtil.getOriginalServletRequest(
93 PortalUtil.getHttpServletRequest(request)).getParameter(name);
94 }
95
96
97
98
99
100
101
102 protected Long getGroupId(final PortletRequest request) {
103 final ThemeDisplay themeDisplay = (ThemeDisplay) request
104 .getAttribute(WebKeys.THEME_DISPLAY);
105 return themeDisplay.getScopeGroupId();
106 }
107
108 private Long getId(final PortletRequest request, final String name) {
109 final String offerId = request.getParameter(name);
110 Long l_offerId = null;
111 if (offerId != null) {
112 l_offerId = this.toLong(offerId);
113 }
114 return l_offerId;
115 }
116
117 private Integer getIntId(final ActionRequest request, final String name) {
118 final String offerId = request.getParameter(name);
119 Integer l_offerId = null;
120 if (offerId != null) {
121 l_offerId = this.toInt(offerId);
122 }
123 return l_offerId;
124 }
125
126
127
128
129
130
131
132 protected Long getOfferId(final ActionRequest request) {
133 return this.getId(request, "offerId");
134 }
135
136
137
138
139
140
141
142 protected Long getOrgId(final PortletRequest request) {
143 return this.getId(request, "orgId");
144 }
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159 protected Integer getResultSkip(final ActionRequest request) {
160 return this.getIntId(request, "resultSkip");
161 }
162
163
164
165
166
167
168
169 protected E_Role getRole(final ThemeDisplay display) {
170 E_Role result = null;
171
172 final User user = display.getUser();
173 if (user != null && user.getEmailAddress() != null) {
174 List<Role> roles = null;
175 try {
176 roles = user.getRoles();
177 } catch (final SystemException e) {
178 }
179 if (roles != null) {
180 for (final Role role : roles) {
181 result = CustomPortalServiceHandler.matchesRole(role);
182 if (result != null) {
183 break;
184 }
185 }
186 }
187 }
188
189 return result;
190
191 }
192
193
194
195
196
197
198
199 protected Long[] getSearchCatId(final RenderRequest request) {
200 Long[] result = null;
201 final String param = this.getGlobalParam(request, "catId");
202 if (param != null) {
203 final String[] ids = param.split(",");
204 if (ids != null && ids.length > 0) {
205 result = new Long[ids.length];
206 for (int i = 0; i < ids.length; i++) {
207 result[i] = this.toLong(ids[i]);
208 }
209 }
210 }
211 return result;
212 }
213
214
215
216
217
218
219
220 protected String[] getSearchCatIdStr(final RenderRequest request) {
221 String[] result = null;
222 final String param = this.getGlobalParam(request, "catId");
223 if (param != null) {
224 result = param.split(",");
225
226 }
227 return result;
228 }
229
230
231
232
233
234
235
236 protected Long getSubId(final ActionRequest request) {
237 return this.getId(request, "subId");
238 }
239
240
241
242
243
244
245
246 protected ThemeDisplay getThemeDisplay(final PortletRequest request) {
247 return (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);
248 }
249
250
251
252
253
254
255
256 protected Long getUserId(final PortletRequest request) {
257 final ThemeDisplay themeDisplay = (ThemeDisplay) request
258 .getAttribute(WebKeys.THEME_DISPLAY);
259 return themeDisplay.getUserId();
260 }
261
262
263
264
265
266
267
268 protected boolean isLoggedInMgmt(final PortletRequest request) {
269 boolean result = false;
270 final ThemeDisplay themeDisplay = (ThemeDisplay) request
271 .getAttribute(WebKeys.THEME_DISPLAY);
272 if (themeDisplay.isSignedIn()) {
273 final User user = themeDisplay.getUser();
274 if (user != null) {
275 try {
276 final List<Role> roles = user.getRoles();
277 String mgmtRoleName = CustomPortalServiceHandler.getConfigValue(E_ConfigKey.ROLE_NAME_MGMT);
278 for (final Role role : roles) {
279 if (role.getName().equals(mgmtRoleName)) {
280 result = true;
281 break;
282 }
283 }
284 } catch (final Throwable t) {
285 }
286 }
287 }
288 return result;
289 }
290
291
292
293
294
295
296
297 protected boolean isLoggedInOrg(final PortletRequest request) {
298 boolean result = false;
299 final ThemeDisplay themeDisplay = (ThemeDisplay) request
300 .getAttribute(WebKeys.THEME_DISPLAY);
301 if (themeDisplay.isSignedIn()) {
302 final User user = themeDisplay.getUser();
303 if (user != null) {
304 try {
305 final List<Role> roles = user.getRoles();
306 final String orgRoleName = CustomPortalServiceHandler.getConfigValue(E_ConfigKey.ROLE_NAME_ORG);
307 for (final Role role : roles) {
308 if (role.getName().equals(orgRoleName)) {
309 result = true;
310 break;
311 }
312 }
313 } catch (final Throwable t) {
314 }
315 }
316 }
317 return result;
318 }
319
320
321
322
323
324
325
326
327
328
329 protected void sendFile(final String name, final String mimeType,
330 final byte[] contents, final ActionRequest request,
331 final ActionResponse response) {
332 try {
333 if (name != null && mimeType != null && contents != null) {
334 final HttpServletRequest httpServletRequest = PortalUtil
335 .getHttpServletRequest(request);
336 final HttpServletResponse httpServletResponse = PortalUtil
337 .getHttpServletResponse(response);
338
339 httpServletResponse.setContentType(mimeType);
340 httpServletResponse.setHeader("Expires", "0");
341 httpServletResponse.setHeader("Cache-Control",
342 "must-revalidate, post-check=0, pre-check=0");
343 httpServletResponse.setHeader("Pragma", "public");
344 httpServletResponse.setContentLength(contents.length);
345 ServletResponseUtil.sendFile(httpServletRequest,
346 httpServletResponse, name, contents);
347 }
348 } catch (final Throwable t) {
349 t.printStackTrace();
350 }
351 }
352
353
354
355
356
357
358
359 protected Integer toInt(final String str) {
360 Integer result = null;
361
362 try {
363 result = Integer.parseInt(str);
364 } catch (final Throwable t) {
365 }
366
367 return result;
368 }
369
370
371
372
373
374
375
376 protected Long toLong(final String str) {
377 Long result = null;
378
379 try {
380 result = Long.parseLong(str);
381 } catch (final Throwable t) {
382 }
383
384 return result;
385 }
386
387 }