001
014
015 package com.liferay.portlet.sites.action;
016
017 import com.liferay.portal.MembershipRequestCommentsException;
018 import com.liferay.portal.NoSuchGroupException;
019 import com.liferay.portal.kernel.servlet.SessionErrors;
020 import com.liferay.portal.kernel.servlet.SessionMessages;
021 import com.liferay.portal.kernel.util.ParamUtil;
022 import com.liferay.portal.liveusers.LiveUsers;
023 import com.liferay.portal.model.MembershipRequest;
024 import com.liferay.portal.model.MembershipRequestConstants;
025 import com.liferay.portal.security.auth.PrincipalException;
026 import com.liferay.portal.service.MembershipRequestServiceUtil;
027 import com.liferay.portal.service.ServiceContext;
028 import com.liferay.portal.service.ServiceContextFactory;
029 import com.liferay.portal.struts.PortletAction;
030 import com.liferay.portal.theme.ThemeDisplay;
031 import com.liferay.portal.util.WebKeys;
032
033 import javax.portlet.ActionRequest;
034 import javax.portlet.ActionResponse;
035 import javax.portlet.PortletConfig;
036 import javax.portlet.RenderRequest;
037 import javax.portlet.RenderResponse;
038
039 import org.apache.struts.action.ActionForm;
040 import org.apache.struts.action.ActionForward;
041 import org.apache.struts.action.ActionMapping;
042
043
046 public class ReplyMembershipRequestAction extends PortletAction {
047
048 @Override
049 public void processAction(
050 ActionMapping mapping, ActionForm form, PortletConfig portletConfig,
051 ActionRequest actionRequest, ActionResponse actionResponse)
052 throws Exception {
053
054 try {
055 ThemeDisplay themeDisplay =
056 (ThemeDisplay)actionRequest.getAttribute(WebKeys.THEME_DISPLAY);
057
058 long membershipRequestId = ParamUtil.getLong(
059 actionRequest, "membershipRequestId");
060
061 int statusId = ParamUtil.getInteger(actionRequest, "statusId");
062 String replyComments = ParamUtil.getString(
063 actionRequest, "replyComments");
064
065 ServiceContext serviceContext = ServiceContextFactory.getInstance(
066 actionRequest);
067
068 MembershipRequestServiceUtil.updateStatus(
069 membershipRequestId, replyComments, statusId, serviceContext);
070
071 if (statusId == MembershipRequestConstants.STATUS_APPROVED) {
072 MembershipRequest membershipRequest =
073 MembershipRequestServiceUtil.getMembershipRequest(
074 membershipRequestId);
075
076 LiveUsers.joinGroup(
077 themeDisplay.getCompanyId(),
078 membershipRequest.getGroupId(),
079 new long[] {membershipRequest.getUserId()});
080 }
081
082 SessionMessages.add(actionRequest, "membership_reply_sent");
083
084 sendRedirect(actionRequest, actionResponse);
085 }
086 catch (Exception e) {
087 if (e instanceof NoSuchGroupException ||
088 e instanceof PrincipalException) {
089
090 SessionErrors.add(actionRequest, e.getClass().getName());
091
092 setForward(actionRequest, "portlet.sites_admin.error");
093 }
094 else if (e instanceof MembershipRequestCommentsException) {
095
096 SessionErrors.add(actionRequest, e.getClass().getName());
097
098 setForward(
099 actionRequest,
100 "portlet.sites_admin.reply_membership_request");
101 }
102 else {
103 throw e;
104 }
105 }
106 }
107 @Override
108 public ActionForward render(
109 ActionMapping mapping, ActionForm form, PortletConfig portletConfig,
110 RenderRequest renderRequest, RenderResponse renderResponse)
111 throws Exception {
112
113 try {
114 ActionUtil.getGroup(renderRequest);
115 }
116 catch (Exception e) {
117 if (e instanceof NoSuchGroupException ||
118 e instanceof PrincipalException) {
119
120 SessionErrors.add(renderRequest, e.getClass().getName());
121
122 return mapping.findForward("portlet.sites_admin.error");
123 }
124 else {
125 throw e;
126 }
127 }
128
129 return mapping.findForward(getForward(
130 renderRequest, "portlet.sites_admin.reply_membership_request"));
131 }
132
133 }