org.openiam.webadmin.res.AttributeMapController.java Source code

Java tutorial

Introduction

Here is the source code for org.openiam.webadmin.res.AttributeMapController.java

Source

package org.openiam.webadmin.res;

/*
 * Copyright 2009, OpenIAM LLC 
 * This file is part of the OpenIAM Identity and Access Management Suite
 *
 *   OpenIAM Identity and Access Management Suite is free software: 
 *   you can redistribute it and/or modify
 *   it under the terms of the Lesser GNU General Public License 
 *   version 3 as published by the Free Software Foundation.
 *
 *   OpenIAM is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   Lesser GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with OpenIAM.  If not, see <http://www.gnu.org/licenses/>. *
 */

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.openiam.idm.srvc.menu.dto.Menu;
import org.openiam.idm.srvc.menu.ws.NavigatorDataWebService;
import org.openiam.idm.srvc.mngsys.dto.AttributeMap;
import org.openiam.idm.srvc.mngsys.service.ManagedSystemDataService;
import org.openiam.idm.srvc.policy.dto.Policy;
import org.openiam.idm.srvc.policy.dto.PolicyConstants;
import org.openiam.idm.srvc.policy.service.PolicyDataService;
import org.openiam.idm.srvc.res.dto.Resource;
import org.openiam.idm.srvc.res.service.ResourceDataService;
import org.openiam.webadmin.util.AuditHelper;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.validation.BindException;
import org.springframework.web.bind.ServletRequestDataBinder;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.CancellableFormController;
import org.springframework.web.servlet.mvc.SimpleFormController;
import org.springframework.web.servlet.view.RedirectView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.text.SimpleDateFormat;
import java.util.*;

/**
 * Controller to manage connectivity information for a managed system
 *
 * @author suneet
 */
public class AttributeMapController extends CancellableFormController {

    private static final Log log = LogFactory.getLog(AttributeMapController.class);

    protected ResourceDataService resourceDataService;
    protected NavigatorDataWebService navigationDataService;
    private PolicyDataService policyDataService;
    private String redirectView;
    private ManagedSystemDataService managedSysService;
    protected AuditHelper auditHelper;

    public AttributeMapController() {
        super();
    }

    @Override
    protected ModelAndView onCancel(Object command) throws Exception {
        return new ModelAndView(new RedirectView(getCancelView(), true));
    }

    protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {

        binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("MM/dd/yyyy"), true));

    }

    protected Map referenceData(HttpServletRequest request) throws Exception {

        List<Policy> attrPolicyAry = policyDataService.getAllPolicies(PolicyConstants.ATTRIBUTE_POLICY);

        Map model = new HashMap();
        model.put("attrPolicyAry", attrPolicyAry);

        return model;
    }

    @Override
    protected Object formBackingObject(HttpServletRequest request) throws Exception {

        String mode = request.getParameter("mode");
        if (mode != null && mode.equalsIgnoreCase("1")) {
            request.setAttribute("msg", "Information has been successfully updated.");
        }

        HttpSession session = request.getSession();
        String userId = (String) session.getAttribute("userId");

        String resId = request.getParameter("objId");

        if (resId != null && resId.length() > 0) {
            request.setAttribute("objId", resId);
        } else {
            resId = request.getParameter("resId");
            request.setAttribute("objId", resId);
        }

        String menuGrp = request.getParameter("menugrp");

        Resource res = resourceDataService.getResource(resId);

        List<AttributeMap> attrMap = this.managedSysService.getResourceAttributeMaps(resId);
        if (attrMap == null) {

            attrMap = new ArrayList<AttributeMap>();
        }

        AttributeMap newMap = new AttributeMap();
        newMap.setAttributeMapId("NEW");
        newMap.setResourceId(resId);
        newMap.setAttributeName("**ENTER ATTRIBUTE NAME**");
        newMap.setStatus("ACTIVE");
        Policy attrPolicy = new Policy();
        attrPolicy.setPolicyId("");
        newMap.setAttributePolicy(attrPolicy);
        attrMap.add(newMap);

        List<Menu> level3MenuList = navigationDataService.menuGroupByUser(menuGrp, userId, "en").getMenuList();
        request.setAttribute("menuL3", level3MenuList);

        AttributeMapCommand cmd = new AttributeMapCommand();
        cmd.setAttrMapList(attrMap);
        cmd.setResourceName(res.getName());
        cmd.setResId(resId);
        cmd.setManagedSysId(res.getManagedSysId());

        return cmd;
    }

    @Override
    protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command,
            BindException errors) throws Exception {

        log.info("onSubmit called");

        AttributeMapCommand attrMapCmd = (AttributeMapCommand) command;
        String resId = attrMapCmd.getResId();

        String userId = (String) request.getSession().getAttribute("userId");
        String domainId = (String) request.getSession().getAttribute("domainid");
        String login = (String) request.getSession().getAttribute("login");

        Resource res = resourceDataService.getResource(resId);

        //ManagedSys sys;

        String btn = request.getParameter("btn");
        if (btn.equalsIgnoreCase("Delete")) {
            List<AttributeMap> attrMap = attrMapCmd.getAttrMapList();
            if (attrMap != null) {

                for (AttributeMap a : attrMap) {
                    if (a.getSelected()) {
                        String mapId = a.getAttributeMapId();
                        if (!mapId.equalsIgnoreCase("NEW")) {
                            this.managedSysService.removeAttributeMap(mapId);

                            auditHelper.addLog("MODIFY", domainId, login, "WEBCONSOLE", userId, "0", "RESOURCE",
                                    resId, null, "SUCCESS", null, "DELETE POLICY-MAP", a.getAttributeName(), null,
                                    null, res.getName(), request.getRemoteHost());
                        }
                    }
                }

            }
        } else {

            List<AttributeMap> attrMap = attrMapCmd.getAttrMapList();

            if (attrMap != null) {

                for (AttributeMap a : attrMap) {
                    if (a.getAttributeMapId() == null || a.getAttributeMapId().equalsIgnoreCase("NEW")) {
                        // new
                        if (a.getAttributePolicy().getPolicyId() != null
                                && a.getAttributePolicy().getPolicyId().length() > 0) {
                            a.setAttributeMapId(null);
                            a.setResourceId(resId);
                            a.setManagedSysId(attrMapCmd.getManagedSysId());
                            this.managedSysService.addAttributeMap(a);

                            auditHelper.addLog("MODIFY", domainId, login, "WEBCONSOLE", userId, "0", "RESOURCE",
                                    resId, null, "SUCCESS", null, "ADD POLICY-MAP", a.getAttributeName(), null,
                                    null, res.getName(), request.getRemoteHost());

                        }
                    } else {
                        // update
                        a.setResourceId(resId);
                        managedSysService.updateAttributeMap(a);

                        auditHelper.addLog("MODIFY", domainId, login, "WEBCONSOLE", userId, "0", "RESOURCE", resId,
                                null, "SUCCESS", null, "MODIFY POLICY-MAP", a.getAttributeName(), null, null,
                                res.getName(), request.getRemoteHost());

                    }
                }

            }
        }
        log.info("refreshing attr list for resourceId=" + resId);
        String view = redirectView + "&menuid=RESPOLICYMAP&menugrp=SECURITY_RES&objId=" + resId;
        log.info("redirecting to=" + view);

        return new ModelAndView(new RedirectView(view, true));

    }

    public ResourceDataService getResourceDataService() {
        return resourceDataService;
    }

    public void setResourceDataService(ResourceDataService resourceDataService) {
        this.resourceDataService = resourceDataService;
    }

    public NavigatorDataWebService getNavigationDataService() {
        return navigationDataService;
    }

    public void setNavigationDataService(NavigatorDataWebService navigationDataService) {
        this.navigationDataService = navigationDataService;
    }

    public PolicyDataService getPolicyDataService() {
        return policyDataService;
    }

    public void setPolicyDataService(PolicyDataService policyDataService) {
        this.policyDataService = policyDataService;
    }

    public String getRedirectView() {
        return redirectView;
    }

    public void setRedirectView(String redirectView) {
        this.redirectView = redirectView;
    }

    public ManagedSystemDataService getManagedSysService() {
        return managedSysService;
    }

    public void setManagedSysService(ManagedSystemDataService managedSysService) {
        this.managedSysService = managedSysService;
    }

    public AuditHelper getAuditHelper() {
        return auditHelper;
    }

    public void setAuditHelper(AuditHelper auditHelper) {
        this.auditHelper = auditHelper;
    }
}