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.GroupConstants;
29 import com.liferay.portal.model.Layout;
30 import com.liferay.portal.security.permission.ResourceActionsUtil;
31 import com.liferay.portal.theme.ThemeDisplay;
32 import com.liferay.portal.util.WebKeys;
33
34 import java.util.List;
35
36 import javax.portlet.RenderResponse;
37
38 import javax.servlet.http.HttpServletRequest;
39 import javax.servlet.jsp.JspException;
40 import javax.servlet.jsp.PageContext;
41
42
50 public class InputPermissionsParamsTagUtil {
51
52 public static void doEndTag(String modelName, PageContext pageContext)
53 throws JspException {
54
55 try {
56 HttpServletRequest request =
57 (HttpServletRequest)pageContext.getRequest();
58
59 RenderResponse renderResponse =
60 (RenderResponse)request.getAttribute(
61 JavaConstants.JAVAX_PORTLET_RESPONSE);
62
63 ThemeDisplay themeDisplay = (ThemeDisplay)request.getAttribute(
64 WebKeys.THEME_DISPLAY);
65
66 Layout layout = themeDisplay.getLayout();
67
68 Group group = themeDisplay.getScopeGroup();
69 Group layoutGroup = layout.getGroup();
70
71 List<String> supportedActions =
72 ResourceActionsUtil.getModelResourceActions(modelName);
73 List<String> communityDefaultActions =
74 ResourceActionsUtil.getModelResourceCommunityDefaultActions(
75 modelName);
76 List<String> guestDefaultActions =
77 ResourceActionsUtil.getModelResourceGuestDefaultActions(
78 modelName);
79 List<String> guestUnsupportedActions =
80 ResourceActionsUtil.getModelResourceGuestUnsupportedActions(
81 modelName);
82
83 StringBuilder sb = new StringBuilder();
84
85 for (int i = 0; i < supportedActions.size(); i++) {
86 String action = supportedActions.get(i);
87
88 boolean communityChecked = communityDefaultActions.contains(
89 action);
90 boolean guestChecked = guestDefaultActions.contains(action);
91 boolean guestDisabled = guestUnsupportedActions.contains(
92 action);
93
94 if (guestDisabled) {
95 guestChecked = false;
96 }
97
98 if (group.isCommunity() || group.isOrganization()) {
99 if (communityChecked) {
100 sb.append(StringPool.AMPERSAND);
101 sb.append(renderResponse.getNamespace());
102 sb.append("communityPermissions=");
103 sb.append(action);
104 }
105 }
106
107 if (guestChecked) {
108 sb.append(StringPool.AMPERSAND);
109 sb.append(renderResponse.getNamespace());
110 sb.append("guestPermissions=");
111 sb.append(action);
112 }
113 }
114
115 boolean inputPermissionsPublic = false;
116
117 if (layoutGroup.getName().equals(GroupConstants.CONTROL_PANEL)) {
118 if (!group.hasPrivateLayouts()) {
119 inputPermissionsPublic = true;
120 }
121 }
122 else if (layout.isPublicLayout()) {
123 inputPermissionsPublic = true;
124 }
125
126 if (inputPermissionsPublic) {
127 sb.append(StringPool.AMPERSAND);
128 sb.append(renderResponse.getNamespace());
129 sb.append("inputPermissionsPublic=1");
130 }
131
132 pageContext.getOut().print(sb.toString());
133 }
134 catch (Exception e) {
135 throw new JspException(e);
136 }
137 }
138
139 }