1
22
23 package com.liferay.portal.servlet.taglib.ui;
24
25 import com.liferay.portal.kernel.util.JavaConstants;
26 import com.liferay.portal.kernel.util.StringPool;
27 import com.liferay.portal.model.Group;
28 import com.liferay.portal.model.Layout;
29 import com.liferay.portal.security.permission.ResourceActionsUtil;
30 import com.liferay.portal.util.WebKeys;
31
32 import java.util.List;
33
34 import javax.portlet.RenderResponse;
35
36 import javax.servlet.http.HttpServletRequest;
37 import javax.servlet.jsp.JspException;
38 import javax.servlet.jsp.PageContext;
39
40
48 public class InputPermissionsParamsTagUtil {
49
50 public static void doEndTag(String modelName, PageContext pageContext)
51 throws JspException {
52
53 try {
54 HttpServletRequest request =
55 (HttpServletRequest)pageContext.getRequest();
56
57 RenderResponse renderResponse =
58 (RenderResponse)request.getAttribute(
59 JavaConstants.JAVAX_PORTLET_RESPONSE);
60
61 Layout layout = (Layout)request.getAttribute(WebKeys.LAYOUT);
62
63 Group group = layout.getGroup();
64
65 List<String> supportedActions =
66 ResourceActionsUtil.getModelResourceActions(modelName);
67 List<String> communityDefaultActions =
68 ResourceActionsUtil.getModelResourceCommunityDefaultActions(
69 modelName);
70 List<String> guestDefaultActions =
71 ResourceActionsUtil.getModelResourceGuestDefaultActions(
72 modelName);
73 List<String> guestUnsupportedActions =
74 ResourceActionsUtil.getModelResourceGuestUnsupportedActions(
75 modelName);
76
77 StringBuilder sb = new StringBuilder();
78
79 for (int i = 0; i < supportedActions.size(); i++) {
80 String action = supportedActions.get(i);
81
82 boolean communityChecked = communityDefaultActions.contains(
83 action);
84 boolean guestChecked = guestDefaultActions.contains(action);
85 boolean guestDisabled = guestUnsupportedActions.contains(
86 action);
87
88 if (guestDisabled) {
89 guestChecked = false;
90 }
91
92 if (group.isCommunity() || group.isOrganization()) {
93 if (communityChecked) {
94 sb.append(StringPool.AMPERSAND);
95 sb.append(renderResponse.getNamespace());
96 sb.append("communityPermissions=");
97 sb.append(action);
98 }
99 }
100
101 if (guestChecked) {
102 sb.append(StringPool.AMPERSAND);
103 sb.append(renderResponse.getNamespace());
104 sb.append("guestPermissions=");
105 sb.append(action);
106 }
107 }
108
109 pageContext.getOut().print(sb.toString());
110 }
111 catch (Exception e) {
112 throw new JspException(e);
113 }
114 }
115
116 }