001
014
015 package com.liferay.portal.action;
016
017 import com.liferay.portal.kernel.json.JSONArray;
018 import com.liferay.portal.kernel.json.JSONFactoryUtil;
019 import com.liferay.portal.kernel.json.JSONObject;
020 import com.liferay.portal.kernel.servlet.ServletResponseUtil;
021 import com.liferay.portal.kernel.util.Constants;
022 import com.liferay.portal.kernel.util.ContentTypes;
023 import com.liferay.portal.kernel.util.ParamUtil;
024 import com.liferay.portal.kernel.util.StringPool;
025 import com.liferay.portal.license.util.LicenseManagerUtil;
026 import com.liferay.portal.license.util.LicenseUtil;
027 import com.liferay.portal.model.User;
028 import com.liferay.portal.util.PortalUtil;
029 import com.liferay.portlet.admin.util.OmniadminUtil;
030
031 import java.util.List;
032 import java.util.Map;
033
034 import javax.servlet.http.HttpServletRequest;
035 import javax.servlet.http.HttpServletResponse;
036
037 import org.apache.struts.action.Action;
038 import org.apache.struts.action.ActionForm;
039 import org.apache.struts.action.ActionForward;
040 import org.apache.struts.action.ActionMapping;
041
042
045 public class UpdateLicenseAction extends Action {
046
047 @Override
048 public ActionForward execute(
049 ActionMapping mapping, ActionForm form, HttpServletRequest request,
050 HttpServletResponse response)
051 throws Exception {
052
053
054
055
056
057
058
059
060
061
062 if (_isValidRequest(request)) {
063 String cmd = ParamUtil.getString(request, Constants.CMD);
064
065 String clusterNodeId = ParamUtil.getString(
066 request, "clusterNodeId");
067
068 if (cmd.equals("licenseProperties")) {
069 String licenseProperties = _getLicenseProperties(clusterNodeId);
070
071 response.setContentType(ContentTypes.TEXT_JAVASCRIPT);
072
073 ServletResponseUtil.write(response, licenseProperties);
074
075 return null;
076 }
077 else if (cmd.equals("serverInfo")) {
078 String serverInfo = _getServerInfo(clusterNodeId);
079
080 response.setContentType(ContentTypes.TEXT_JAVASCRIPT);
081
082 ServletResponseUtil.write(response, serverInfo);
083
084 return null;
085 }
086
087 return mapping.findForward("portal.license");
088 }
089 else {
090 response.sendRedirect(
091 PortalUtil.getPathContext() + "/c/portal/layout");
092
093 return null;
094 }
095 }
096
097 private String _getLicenseProperties(String clusterNodeId) {
098 List<Map<String, String>> licenseProperties =
099 LicenseManagerUtil.getClusterLicenseProperties(clusterNodeId);
100
101 if (licenseProperties == null) {
102 return StringPool.BLANK;
103 }
104
105 JSONArray jsonArray = JSONFactoryUtil.createJSONArray();
106
107 for (Map<String, String> propertiesMap : licenseProperties) {
108 JSONObject jsonObject = JSONFactoryUtil.createJSONObject();
109
110 for (Map.Entry<String, String> entry : propertiesMap.entrySet()) {
111 jsonObject.put(entry.getKey(), entry.getValue());
112 }
113
114 jsonArray.put(jsonObject);
115 }
116
117 return jsonArray.toString();
118 }
119
120 private String _getServerInfo(String clusterNodeId) throws Exception {
121 Map<String, String> serverInfo = LicenseUtil.getClusterServerInfo(
122 clusterNodeId);
123
124 JSONObject jsonObject = JSONFactoryUtil.createJSONObject();
125
126 if (serverInfo != null) {
127 for (Map.Entry<String, String> entry : serverInfo.entrySet()) {
128 jsonObject.put(entry.getKey(), entry.getValue());
129 }
130 }
131
132 return jsonObject.toString();
133 }
134
135 private boolean _isOmniAdmin(HttpServletRequest request) {
136 User user = null;
137
138 try {
139 user = PortalUtil.getUser(request);
140 }
141 catch (Exception e) {
142 }
143
144 if ((user != null) && OmniadminUtil.isOmniadmin(user)) {
145 return true;
146 }
147 else {
148 return false;
149 }
150 }
151
152 private boolean _isValidRequest(HttpServletRequest request) {
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169 if (_isOmniAdmin(request)) {
170 LicenseUtil.registerOrder(request);
171
172 return true;
173 }
174 else {
175 return false;
176 }
177 }
178
179 }