package org.oep.ssomgt.action;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.PortletException;
import javax.portlet.ResourceRequest;
import javax.portlet.ResourceResponse;
import org.oep.ssomgt.model.UserSync;
import org.oep.ssomgt.service.UserSyncLocalServiceUtil;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.json.JSONArray;
import com.liferay.portal.kernel.json.JSONFactoryUtil;
import com.liferay.portal.kernel.json.JSONObject;
import com.liferay.portal.kernel.servlet.SessionErrors;
import com.liferay.portal.kernel.servlet.SessionMessages;
import com.liferay.portal.kernel.util.Constants;
import com.liferay.portal.kernel.util.ParamUtil;
import com.liferay.portal.util.PortalUtil;
import com.liferay.util.bridges.mvc.MVCPortlet;
/**
* Portlet implementation class UserSyncPortlet
*/
public class UserSyncPortlet extends MVCPortlet {
public void addEditUserSync(ActionRequest request, ActionResponse response) throws SystemException, PortalException, IOException {
if (SessionErrors.isEmpty(request)) {
String appUserName = ParamUtil.getString(request, UserSyncKeys.AddEditAttributes.APP_USERNAME, PortletKeys.TEXT_BOX);
Long editId = ParamUtil.getLong(request, UserSyncKeys.AddEditAttributes.EDIT_ID, PortletKeys.LONG_DEFAULT);
if (editId == PortletKeys.LONG_DEFAULT) {
} else {
UserSync userSync = UserSyncLocalServiceUtil.getUserSync(editId);
userSync.setAppUserName(appUserName);
userSync.setCheckpoint(new Date());
UserSyncLocalServiceUtil.updateUserSync(userSync);
}
}
SessionMessages.add(request, PortalUtil.getPortletId(request) + SessionMessages.KEY_SUFFIX_HIDE_DEFAULT_ERROR_MESSAGE);
if (!SessionErrors.isEmpty(request)) {
PortalUtil.copyRequestParameters(request, response);
} else {
response.sendRedirect(ParamUtil.getString(request, PortletKeys.REDIRECT_PAGE));
}
}
public void viewUserSync(ActionRequest request, ActionResponse response) throws PortalException, SystemException, IOException {
long editId = ParamUtil.getLong(request, UserSyncKeys.BaseUserSyncAttributes.EDIT_ID, PortletKeys.LONG_DEFAULT);
UserSync userSync = UserSyncLocalServiceUtil.getUserSync(editId);
setParameterIntoResponse(response, userSync);
if (!SessionErrors.isEmpty(request)) {
response.sendRedirect(ParamUtil.getString(request, PortletKeys.REDIRECT_PAGE));
} else {
PortalUtil.copyRequestParameters(request, response);
}
}
public void changeMapping(ActionRequest request, ActionResponse response) throws PortalException, SystemException, IOException {
long editId = ParamUtil.getLong(request, UserSyncKeys.BaseUserSyncAttributes.EDIT_ID, PortletKeys.LONG_DEFAULT);
UserSync userSync = UserSyncLocalServiceUtil.getUserSync(editId);
setParameterIntoResponse(response, userSync);
if (!SessionErrors.isEmpty(request)) {
response.sendRedirect(ParamUtil.getString(request, PortletKeys.REDIRECT_PAGE));
} else {
PortalUtil.copyRequestParameters(request, response);
}
}
private void setParameterIntoResponse(ActionResponse response, UserSync userSync) {
response.setRenderParameter(UserSyncKeys.AddEditAttributes.EDIT_ID, String.valueOf(userSync.getUserSyncId()));
response.setRenderParameter(UserSyncKeys.AddEditAttributes.APPLICATION_ID, String.valueOf(userSync.getApplicationId()));
response.setRenderParameter(UserSyncKeys.AddEditAttributes.EMAIL, String.valueOf(userSync.getEmail()));
response.setRenderParameter(UserSyncKeys.AddEditAttributes.APP_USERNAME, userSync.getAppUserName());
response.setRenderParameter(UserSyncKeys.AddEditAttributes.EMPLOYEE_ID, String.valueOf(userSync.getEmployeeId()));
response.setRenderParameter(UserSyncKeys.AddEditAttributes.SSO_USERNAME, String.valueOf(userSync.getSsoUserName()));
}
@Override
public void serveResource(ResourceRequest resourceRequest, ResourceResponse resourceResponse) throws IOException, PortletException {
String cmd = ParamUtil.getString(resourceRequest, Constants.CMD);
System.out.println("Constants.CMD: " + cmd);
if (cmd.equals("getAppUsers")) {
getAppUsersJson(resourceRequest, resourceResponse);
}
}
private void getAppUsersJson(ResourceRequest resourceRequest, ResourceResponse resourceResponse) throws IOException, PortletException {
JSONArray jsonResults = JSONFactoryUtil.createJSONArray();
try {
String keyword = ParamUtil.getString(resourceRequest, "keywords");
String searchPattern = keyword.replace("*", "%");
System.out.println("Keywords: " + searchPattern);
JSONObject jsonCells = JSONFactoryUtil.createJSONObject();
jsonCells.put("key", "1");
jsonCells.put("name", "New York, USA");
jsonResults.put(jsonCells);
jsonCells = JSONFactoryUtil.createJSONObject();
jsonCells.put("key", "2");
jsonCells.put("name", "Delhi, India");
jsonResults.put(jsonCells);
jsonCells = JSONFactoryUtil.createJSONObject();
jsonCells.put("key", "3");
jsonCells.put("name", "Hyderabad, India");
jsonResults.put(jsonCells);
} catch (Exception e) {
}
PrintWriter out=resourceResponse.getWriter();
out.println(jsonResults.toString());
}
}