1
22
23 package com.liferay.portlet.communities.action;
24
25 import com.liferay.portal.MembershipRequestCommentsException;
26 import com.liferay.portal.NoSuchGroupException;
27 import com.liferay.portal.kernel.servlet.SessionErrors;
28 import com.liferay.portal.kernel.servlet.SessionMessages;
29 import com.liferay.portal.kernel.util.ParamUtil;
30 import com.liferay.portal.security.auth.PrincipalException;
31 import com.liferay.portal.service.MembershipRequestServiceUtil;
32 import com.liferay.portal.struts.PortletAction;
33
34 import javax.portlet.ActionRequest;
35 import javax.portlet.ActionResponse;
36 import javax.portlet.PortletConfig;
37 import javax.portlet.RenderRequest;
38 import javax.portlet.RenderResponse;
39
40 import org.apache.struts.action.ActionForm;
41 import org.apache.struts.action.ActionForward;
42 import org.apache.struts.action.ActionMapping;
43
44
49 public class PostMembershipRequestAction extends PortletAction {
50
51 public void processAction(
52 ActionMapping mapping, ActionForm form, PortletConfig portletConfig,
53 ActionRequest actionRequest, ActionResponse actionResponse)
54 throws Exception {
55
56 try {
57 long groupId = ParamUtil.getLong(actionRequest, "groupId");
58 String comments = ParamUtil.getString(actionRequest, "comments");
59
60 MembershipRequestServiceUtil.addMembershipRequest(
61 groupId, comments);
62
63 SessionMessages.add(actionRequest, "membership_request_sent");
64
65 sendRedirect(actionRequest, actionResponse);
66 }
67 catch (Exception e) {
68 if (e instanceof NoSuchGroupException ||
69 e instanceof PrincipalException) {
70
71 SessionErrors.add(actionRequest, e.getClass().getName());
72
73 setForward(actionRequest, "portlet.communities.error");
74 }
75 else if (e instanceof MembershipRequestCommentsException) {
76
77 SessionErrors.add(actionRequest, e.getClass().getName());
78
79 setForward(
80 actionRequest,
81 "portlet.communities.post_membership_request");
82 }
83 else {
84 throw e;
85 }
86 }
87 }
88 public ActionForward render(
89 ActionMapping mapping, ActionForm form, PortletConfig portletConfig,
90 RenderRequest renderRequest, RenderResponse renderResponse)
91 throws Exception {
92
93 try {
94 ActionUtil.getGroup(renderRequest);
95 }
96 catch (Exception e) {
97 if (e instanceof NoSuchGroupException ||
98 e instanceof PrincipalException) {
99
100 SessionErrors.add(renderRequest, e.getClass().getName());
101
102 return mapping.findForward("portlet.communities.error");
103 }
104 else {
105 throw e;
106 }
107 }
108
109 return mapping.findForward(getForward(
110 renderRequest, "portlet.communities.post_membership_request"));
111 }
112
113 }