1
14
15 package com.liferay.portlet.requests.action;
16
17 import com.liferay.portal.kernel.servlet.SessionErrors;
18 import com.liferay.portal.kernel.util.ParamUtil;
19 import com.liferay.portal.model.Group;
20 import com.liferay.portal.model.User;
21 import com.liferay.portal.security.auth.PrincipalException;
22 import com.liferay.portal.security.permission.ActionKeys;
23 import com.liferay.portal.service.GroupLocalServiceUtil;
24 import com.liferay.portal.service.UserLocalServiceUtil;
25 import com.liferay.portal.service.permission.UserPermissionUtil;
26 import com.liferay.portal.struts.PortletAction;
27 import com.liferay.portal.theme.ThemeDisplay;
28 import com.liferay.portal.util.WebKeys;
29 import com.liferay.portlet.social.NoSuchRequestException;
30 import com.liferay.portlet.social.service.SocialRequestLocalServiceUtil;
31
32 import javax.portlet.ActionRequest;
33 import javax.portlet.ActionResponse;
34 import javax.portlet.PortletConfig;
35
36 import org.apache.struts.action.ActionForm;
37 import org.apache.struts.action.ActionMapping;
38
39
44 public class UpdateRequestAction extends PortletAction {
45
46 public void processAction(
47 ActionMapping mapping, ActionForm form, PortletConfig portletConfig,
48 ActionRequest actionRequest, ActionResponse actionResponse)
49 throws Exception {
50
51 try {
52 ThemeDisplay themeDisplay =
53 (ThemeDisplay)actionRequest.getAttribute(WebKeys.THEME_DISPLAY);
54
55 Group group = GroupLocalServiceUtil.getGroup(
56 themeDisplay.getScopeGroupId());
57
58 User user = themeDisplay.getUser();
59
60 if (group.isUser()) {
61 user = UserLocalServiceUtil.getUserById(group.getClassPK());
62 }
63
64 if (!UserPermissionUtil.contains(
65 themeDisplay.getPermissionChecker(), user.getUserId(),
66 ActionKeys.UPDATE)) {
67
68 throw new PrincipalException();
69 }
70
71 updateRequest(actionRequest);
72
73 String redirect = ParamUtil.getString(actionRequest, "redirect");
74
75 actionResponse.sendRedirect(redirect);
76 }
77 catch (Exception e) {
78 if (e instanceof NoSuchRequestException ||
79 e instanceof PrincipalException) {
80
81 SessionErrors.add(actionRequest, e.getClass().getName());
82
83 setForward(actionRequest, "portlet.requests.error");
84 }
85 else {
86 throw e;
87 }
88 }
89 }
90
91 protected void updateRequest(ActionRequest actionRequest) throws Exception {
92 ThemeDisplay themeDisplay = (ThemeDisplay)actionRequest.getAttribute(
93 WebKeys.THEME_DISPLAY);
94
95 long requestId = ParamUtil.getLong(actionRequest, "requestId");
96 int status = ParamUtil.getInteger(actionRequest, "status");
97
98 SocialRequestLocalServiceUtil.updateRequest(
99 requestId, status, themeDisplay);
100 }
101
102 }