1
22
23 package com.liferay.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.tagext.TagSupport;
39
40
46 public class InputPermissionsParamsTag extends TagSupport {
47
48 public int doEndTag() throws JspException {
49 try {
50 HttpServletRequest request =
51 (HttpServletRequest)pageContext.getRequest();
52
53 RenderResponse renderResponse =
54 (RenderResponse)request.getAttribute(
55 JavaConstants.JAVAX_PORTLET_RESPONSE);
56
57 Layout layout = (Layout)request.getAttribute(WebKeys.LAYOUT);
58
59 Group group = layout.getGroup();
60
61 List<String> supportedActions =
62 ResourceActionsUtil.getModelResourceActions(_modelName);
63 List<String> communityDefaultActions =
64 ResourceActionsUtil.getModelResourceCommunityDefaultActions(
65 _modelName);
66 List<String> guestDefaultActions =
67 ResourceActionsUtil.getModelResourceGuestDefaultActions(
68 _modelName);
69 List<String> guestUnsupportedActions =
70 ResourceActionsUtil.getModelResourceGuestUnsupportedActions(
71 _modelName);
72
73 StringBuilder sb = new StringBuilder();
74
75 for (int i = 0; i < supportedActions.size(); i++) {
76 String action = supportedActions.get(i);
77
78 boolean communityChecked = communityDefaultActions.contains(
79 action);
80 boolean guestChecked = guestDefaultActions.contains(action);
81 boolean guestDisabled = guestUnsupportedActions.contains(
82 action);
83
84 if (guestDisabled) {
85 guestChecked = false;
86 }
87
88 if (group.isCommunity() || group.isOrganization()) {
89 if (communityChecked) {
90 sb.append(StringPool.AMPERSAND);
91 sb.append(renderResponse.getNamespace());
92 sb.append("communityPermissions=");
93 sb.append(action);
94 }
95 }
96
97 if (guestChecked) {
98 sb.append(StringPool.AMPERSAND);
99 sb.append(renderResponse.getNamespace());
100 sb.append("guestPermissions=");
101 sb.append(action);
102 }
103 }
104
105 pageContext.getOut().print(sb.toString());
106
107 return EVAL_PAGE;
108 }
109 catch (Exception e) {
110 throw new JspException(e);
111 }
112 }
113
114 public void setModelName(String modelName) {
115 _modelName = modelName;
116 }
117
118 private String _modelName;
119
120 }