org.oep.ssomgt.action.AppRolePortlet.java Source code

Java tutorial

Introduction

Here is the source code for org.oep.ssomgt.action.AppRolePortlet.java

Source

/**
 * Copyright (c) 2015 by Open eGovPlatform (http://http://openegovplatform.org/).
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *  http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.oep.ssomgt.action;

import java.io.IOException;
import java.util.Date;

import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;

import org.oep.ssomgt.DuplicateRoleCodeException;
import org.oep.ssomgt.RoleCodeRangeLengthException;
import org.oep.ssomgt.RoleNameRangeLengthException;
import org.oep.ssomgt.model.AppRole;
import org.oep.ssomgt.model.AppRole2Employee;
import org.oep.ssomgt.model.UserSync;
import org.oep.ssomgt.service.AppRole2EmployeeLocalServiceUtil;
import org.oep.ssomgt.service.AppRole2JobPosLocalServiceUtil;
import org.oep.ssomgt.service.AppRoleLocalServiceUtil;
import org.oep.ssomgt.service.UserSyncLocalServiceUtil;
import org.oep.usermgt.model.Employee;
import org.oep.usermgt.service.EmployeeLocalServiceUtil;

import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.servlet.SessionErrors;
import com.liferay.portal.kernel.servlet.SessionMessages;
import com.liferay.portal.kernel.util.ParamUtil;
import com.liferay.portal.model.User;
import com.liferay.portal.service.ServiceContext;
import com.liferay.portal.service.ServiceContextThreadLocal;
import com.liferay.portal.service.UserLocalServiceUtil;
import com.liferay.portal.util.PortalUtil;
import com.liferay.util.bridges.mvc.MVCPortlet;

/**
 * Portlet implementation class AppRolePortlet
 */
public class AppRolePortlet extends MVCPortlet {
    public void addEditAppRole2JobPos(ActionRequest request, ActionResponse response)
            throws SystemException, PortalException, IOException {
        if (SessionErrors.isEmpty(request)) {
            ServiceContext serviceContext = ServiceContextThreadLocal.getServiceContext();
            long appRoleId = ParamUtil.getLong(request, AppRole2JobPosKeys.AddEditAttributes.APPROLE_ID,
                    PortletKeys.LONG_DEFAULT);
            long jobPosId = ParamUtil.getLong(request, AppRole2JobPosKeys.AddEditAttributes.JOBPOS_ID,
                    PortletKeys.LONG_DEFAULT);

            Long editId = ParamUtil.getLong(request, AppRole2JobPosKeys.AddEditAttributes.EDIT_ID,
                    PortletKeys.LONG_DEFAULT);
            if (editId == PortletKeys.LONG_DEFAULT) {
                AppRole2JobPosLocalServiceUtil.addAppRole2JobPos(appRoleId, jobPosId, serviceContext);
                SessionMessages.add(request,
                        AssignRoleKeys.SuccessMessageKeys.ORG_OEP_SSOMGT_PORTLET_APPROLE_ASSIGNROLE2JOBPOS_SUCCESS_ADDNEW);
            } else {
            }
        }
        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 addEditAppRole2Employee(ActionRequest request, ActionResponse response)
            throws SystemException, PortalException, IOException {
        if (SessionErrors.isEmpty(request)) {
            ServiceContext serviceContext = ServiceContextThreadLocal.getServiceContext();
            long appRoleId = ParamUtil.getLong(request, AppRole2JobPosKeys.AddEditAttributes.APPROLE_ID,
                    PortletKeys.LONG_DEFAULT);
            long employeeId = ParamUtil.getLong(request, AppRole2EmployeeKeys.AddEditAttributes.EMPLOYEE_ID,
                    PortletKeys.LONG_DEFAULT);

            Long editId = ParamUtil.getLong(request, AppRole2EmployeeKeys.AddEditAttributes.EDIT_ID,
                    PortletKeys.LONG_DEFAULT);
            if (editId == PortletKeys.LONG_DEFAULT) {
                Employee employee = EmployeeLocalServiceUtil.getEmployee(employeeId);
                AppRole2EmployeeLocalServiceUtil.addAppRole2Employee(appRoleId, employeeId, serviceContext);
                AppRole role = AppRoleLocalServiceUtil.getAppRole(appRoleId);
                try {
                    UserSync userSync = UserSyncLocalServiceUtil.findByApplicationEmployee(role.getApplicationId(),
                            employeeId);
                    String roles = userSync.getRoles();
                    userSync.setCheckpoint(new Date());
                    if (!roles.contains(role.getRoleCode())) {
                        if (roles.equals(""))
                            roles = role.getRoleCode();
                        else
                            roles += "," + role.getRoleCode();
                    } else {

                    }
                    UserSyncLocalServiceUtil.updateUserSync(userSync);
                } catch (Exception e) {
                    e.printStackTrace();
                    User user = UserLocalServiceUtil.getUser(employee.getMappingUserId());
                    UserSyncLocalServiceUtil.addUserSync(role.getApplicationId(), employeeId,
                            employee.getMappingUserId(), user.getScreenName(), user.getScreenName(),
                            employee.getFullName(), user.getEmailAddress(), user.getPassword(), 1,
                            role.getRoleCode(), new Date(), null);
                }
                SessionMessages.add(request,
                        AssignRoleKeys.SuccessMessageKeys.ORG_OEP_SSOMGT_PORTLET_APPROLE_ASSIGNROLE2EMPLOYEE_SUCCESS_ADDNEW);
            } else {
            }
        }
        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 deleteJP(ActionRequest request, ActionResponse response)
            throws PortalException, SystemException, IOException {
        long deleteId = ParamUtil.getLong(request, AppRole2JobPosKeys.BaseAppRole2JobPosAttributes.DELETE_ID,
                PortletKeys.LONG_DEFAULT);
        try {
            AppRole2JobPosLocalServiceUtil.removeAppRole2JobPos(deleteId);
            SessionMessages.add(request,
                    AssignRoleKeys.SuccessMessageKeys.ORG_OEP_SSOMGT_PORTLET_APPROLE_ASSIGNROLE2JOBPOS_SUCCESS_DELETE);
        } catch (Exception ex) {
            SessionMessages.add(request,
                    AssignRoleKeys.ErrorMessageKeys.ORG_OEP_SSOMGT_PORTLET_APPROLE_ASSIGNROLE2JOBPOS_ERROR_DELETE);
        }
        response.sendRedirect(ParamUtil.getString(request, PortletKeys.REDIRECT_PAGE));
    }

    public void deleteEP(ActionRequest request, ActionResponse response)
            throws PortalException, SystemException, IOException {
        long deleteId = ParamUtil.getLong(request, AppRole2JobPosKeys.BaseAppRole2JobPosAttributes.DELETE_ID,
                PortletKeys.LONG_DEFAULT);
        try {
            AppRole2Employee a2e = AppRole2EmployeeLocalServiceUtil.getAppRole2Employee(deleteId);
            if (a2e != null) {
                try {
                    AppRole role = AppRoleLocalServiceUtil.getAppRole(a2e.getAppRoleId());
                    UserSync userSync = UserSyncLocalServiceUtil.findByApplicationEmployee(role.getApplicationId(),
                            a2e.getEmployeeId());
                    userSync.setCheckpoint(new Date());
                    userSync.setAccessibleStatus(0);
                    UserSyncLocalServiceUtil.updateUserSync(userSync);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            AppRole2EmployeeLocalServiceUtil.removeAppRole2Employee(deleteId);
            SessionMessages.add(request,
                    AssignRoleKeys.SuccessMessageKeys.ORG_OEP_SSOMGT_PORTLET_APPROLE_ASSIGNROLE2EMPLOYEE_SUCCESS_DELETE);
        } catch (Exception ex) {
            SessionMessages.add(request,
                    AssignRoleKeys.ErrorMessageKeys.ORG_OEP_SSOMGT_PORTLET_APPROLE_ASSIGNROLE2EMPLOYEE_ERROR_DELETE);
        }
        response.sendRedirect(ParamUtil.getString(request, PortletKeys.REDIRECT_PAGE));
    }

    private void validateParamsIntoSessionError(ActionRequest request) {
        String roleCode = ParamUtil.getString(request, AppRoleKeys.AddEditAttributes.ROLE_CODE,
                PortletKeys.TEXT_BOX);
        String roleName = ParamUtil.getString(request, AppRoleKeys.AddEditAttributes.ROLE_NAME,
                PortletKeys.TEXT_BOX);

        Long editId = ParamUtil.getLong(request, AppRoleKeys.AddEditAttributes.EDIT_ID, PortletKeys.LONG_DEFAULT);

        try {
            AppRoleLocalServiceUtil.validate(editId, roleCode, roleName);
        } catch (DuplicateRoleCodeException drce) {
            SessionErrors.add(request, AppRoleKeys.ErrorMessageKeys.ORG_OEP_SSOMGT_PORTLET_APPROLE_ROLECODE);
        } catch (RoleCodeRangeLengthException rcr) {
            SessionErrors.add(request, AppRoleKeys.ErrorMessageKeys.ORG_OEP_SSOMGT_PORTLET_APPROLE_ROLECODE);
        } catch (RoleNameRangeLengthException rnr) {
            SessionErrors.add(request, AppRoleKeys.ErrorMessageKeys.ORG_OEP_SSOMGT_PORTLET_APPROLE_ROLENAME);
        }
    }

    public void addEditAppRole(ActionRequest request, ActionResponse response)
            throws SystemException, PortalException, IOException {
        validateParamsIntoSessionError(request);

        if (SessionErrors.isEmpty(request)) {
            ServiceContext serviceContext = ServiceContextThreadLocal.getServiceContext();
            long applicationId = ParamUtil.getLong(request, AppRoleKeys.AddEditAttributes.APPLICATION_ID,
                    PortletKeys.LONG_DEFAULT);
            String roleCode = ParamUtil.getString(request, AppRoleKeys.AddEditAttributes.ROLE_CODE,
                    PortletKeys.TEXT_BOX);
            String roleName = ParamUtil.getString(request, AppRoleKeys.AddEditAttributes.ROLE_NAME,
                    PortletKeys.TEXT_BOX);

            Long editId = ParamUtil.getLong(request, AppRoleKeys.AddEditAttributes.EDIT_ID,
                    PortletKeys.LONG_DEFAULT);
            if (editId == PortletKeys.LONG_DEFAULT) {
                AppRoleLocalServiceUtil.addAppRole(applicationId, roleCode, roleName, serviceContext);
                SessionMessages.add(request,
                        AppRoleKeys.SuccessMessageKeys.ORG_OEP_SSOMGT_PORTLET_APPROLE_SUCCESS_ADDNEW);
            } else {
                AppRoleLocalServiceUtil.updateAppRole(editId, applicationId, roleCode, roleName, serviceContext);
                SessionMessages.add(request,
                        AppRoleKeys.SuccessMessageKeys.ORG_OEP_SSOMGT_PORTLET_APPROLE_SUCCESS_UPDATE);
            }
        }
        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 deleteAppRole(ActionRequest request, ActionResponse response)
            throws PortalException, SystemException, IOException {
        long deleteId = ParamUtil.getLong(request, AppRoleKeys.AddEditAttributes.DELETE_ID,
                PortletKeys.LONG_DEFAULT);
        try {
            AppRoleLocalServiceUtil.removeAppRole(deleteId);
            SessionMessages.add(request,
                    AppRoleKeys.SuccessMessageKeys.ORG_OEP_SSOMGT_PORTLET_APPROLE_SUCCESS_DELETE);
        } catch (Exception ex) {
            SessionMessages.add(request, AppRoleKeys.ErrorMessageKeys.ORG_OEP_SSOMGT_PORTLET_APPROLE_ERROR_DELETE);
        }
        response.sendRedirect(ParamUtil.getString(request, PortletKeys.REDIRECT_PAGE));
    }

    public void editAppRole(ActionRequest request, ActionResponse response)
            throws PortalException, SystemException, IOException {
        long editId = ParamUtil.getLong(request, AppRoleKeys.AddEditAttributes.EDIT_ID, PortletKeys.LONG_DEFAULT);

        AppRole appRole = AppRoleLocalServiceUtil.getAppRole(editId);
        setParameterIntoResponse(response, appRole);

        if (!SessionErrors.isEmpty(request)) {
            response.sendRedirect(ParamUtil.getString(request, PortletKeys.REDIRECT_PAGE));
            SessionMessages.add(request,
                    AppRoleKeys.SuccessMessageKeys.ORG_OEP_SSOMGT_PORTLET_APPROLE_SUCCESS_UPDATE);
        } else {
            PortalUtil.copyRequestParameters(request, response);
        }
    }

    private void setParameterIntoResponse(ActionResponse response, AppRole appRole) {
        response.setRenderParameter(AppRoleKeys.AddEditAttributes.EDIT_ID, String.valueOf(appRole.getAppRoleId()));
        response.setRenderParameter(AppRoleKeys.AddEditAttributes.APPLICATION_ID,
                String.valueOf(appRole.getApplicationId()));
        response.setRenderParameter(AppRoleKeys.AddEditAttributes.ROLE_NAME, String.valueOf(appRole.getRoleName()));
        response.setRenderParameter(AppRoleKeys.AddEditAttributes.ROLE_CODE, String.valueOf(appRole.getRoleCode()));
    }

}