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