Package org.ejbca.ui.web.admin.approval

Source Code of org.ejbca.ui.web.admin.approval.ApproveActionSessionBean

/*************************************************************************
*                                                                       *
*  EJBCA: The OpenSource Certificate Authority                          *
*                                                                       *
*  This software is free software; you can redistribute it and/or       *
*  modify it under the terms of the GNU Lesser General Public           *
*  License as published by the Free Software Foundation; either         *
*  version 2.1 of the License, or any later version.                    *
*                                                                       *
*  See terms of license at gnu.org.                                     *
*                                                                       *
*************************************************************************/

package org.ejbca.ui.web.admin.approval;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

import org.apache.log4j.Logger;
import org.ejbca.core.EjbcaException;
import org.ejbca.core.model.approval.AdminAlreadyApprovedRequestException;
import org.ejbca.core.model.approval.Approval;
import org.ejbca.core.model.approval.ApprovalDataVO;
import org.ejbca.core.model.approval.ApprovalException;
import org.ejbca.core.model.approval.ApprovalRequest;
import org.ejbca.core.model.approval.ApprovalRequestExecutionException;
import org.ejbca.core.model.approval.ApprovalRequestExpiredException;
import org.ejbca.core.model.authorization.AuthorizationDeniedException;
import org.ejbca.core.model.log.Admin;
import org.ejbca.core.model.ra.RAAuthorization;
import org.ejbca.core.model.util.EjbLocalHelper;
import org.ejbca.ui.web.admin.BaseManagedBean;
import org.ejbca.ui.web.admin.configuration.EjbcaJSFHelper;
import org.ejbca.ui.web.admin.configuration.EjbcaWebBean;
import org.ejbca.util.query.ApprovalMatch;
import org.ejbca.util.query.BasicMatch;
import org.ejbca.util.query.IllegalQueryException;
import org.ejbca.util.query.Query;

/**
* Session scoped bean for displaying information about an approval request.
*
* @author Philip Vendil
* @version $Id: ApproveActionSessionBean.java 11492 2011-03-09 16:34:38Z netmackan $
*/
public class ApproveActionSessionBean extends BaseManagedBean {

    private static final long serialVersionUID = 1940920496104779323L;
    private static final Logger log = Logger.getLogger(ApproveActionSessionBean.class);
  private final EjbLocalHelper ejb = new EjbLocalHelper();
  private String comment = "";
  private ApprovalDataVOView approveRequestData;
  private HashMap<Integer, String> statustext = null;

  public ApproveActionSessionBean() {
    super();   
    approveRequestData = new ApprovalDataVOView();        
  }

  public  HashMap<Integer, String> getStatusText(){
      if(statustext == null){
        EjbcaWebBean ejbcawebbean = EjbcaJSFHelper.getBean().getEjbcaWebBean();
        statustext = new HashMap<Integer, String>();
        statustext.put(Integer.valueOf(ApprovalDataVO.STATUS_WAITINGFORAPPROVAL), ejbcawebbean.getText("WAITING", true));
        statustext.put(Integer.valueOf(ApprovalDataVO.STATUS_EXPIRED), ejbcawebbean.getText("EXPIRED", true));
        statustext.put(Integer.valueOf(ApprovalDataVO.STATUS_EXPIREDANDNOTIFIED), ejbcawebbean.getText("EXPIREDANDNOTIFIED", true));
        statustext.put(Integer.valueOf(ApprovalDataVO.STATUS_EXECUTED), ejbcawebbean.getText("EXECUTED", true));
        statustext.put(Integer.valueOf(ApprovalDataVO.STATUS_APPROVED), ejbcawebbean.getText("APPROVED", true));
        statustext.put(Integer.valueOf(ApprovalDataVO.STATUS_REJECTED), ejbcawebbean.getText("REJECTED", true));
        statustext.put(Integer.valueOf(ApprovalDataVO.STATUS_EXECUTIONFAILED), ejbcawebbean.getText("EXECUTIONFAILED", true));
        statustext.put(Integer.valueOf(ApprovalDataVO.STATUS_EXECUTIONDENIED), ejbcawebbean.getText("EXECUTIONDENIED", true));
      }
      return statustext;
  }

  public ApprovalDataVOView getApproveRequestData() {
    return approveRequestData;
  }

  public boolean isApprovalRequestComparable() {   
    return approveRequestData.getApproveActionDataVO().getApprovalRequest().getApprovalRequestType() == ApprovalRequest.REQUESTTYPE_COMPARING;
  }

  public String getWindowWidth(){
    if(isApprovalRequestComparable()){
      return "1000";
    }
    return "600"
  }

    public List<ApprovalView> getApprovalViews() {
        List<ApprovalView> approvalViews = new ArrayList<ApprovalView>();
        if (approveRequestData != null && approveRequestData.getApproveActionDataVO().getApprovals() != null) {
            Iterator<Approval> iter = approveRequestData.getApproveActionDataVO().getApprovals().iterator();
            while (iter.hasNext()) {
                approvalViews.add(new ApprovalView((Approval) iter.next()));
            }
        }
        return approvalViews;
    }
    public void setApprovalViews(List<ApprovalView> list){}
  
    public boolean isExistsApprovals(){
      return approveRequestData.getApproveActionDataVO().getApprovals().size() >0;
    }

    public boolean isApprovable(){
      if(approveRequestData.getApproveActionDataVO().getStatus() == ApprovalDataVO.STATUS_WAITINGFORAPPROVAL){
        return true;
      }
      return false;
    }

  
    public String approve() {
      final Approval approval = new Approval(comment);
      try {      
        final Admin admin = EjbcaJSFHelper.getBean().getAdmin();
        ejb.getApprovalExecutionSession().approve(admin, approveRequestData.getApprovalId(), approval, ejb.getGlobalConfigurationSession().getCachedGlobalConfiguration(admin));
        updateApprovalRequestData(approveRequestData.getApproveActionDataVO().getId());
      } catch (ApprovalRequestExpiredException e) {
        addErrorMessage("APPROVALREQUESTEXPIRED");
      } catch (ApprovalRequestExecutionException e) {
        addErrorMessage("ERROREXECUTINGREQUEST");
      } catch (AuthorizationDeniedException e) {
        addErrorMessage("AUTHORIZATIONDENIED");
      } catch (ApprovalException e) {
        addErrorMessage("ERRORHAPPENDWHENAPPROVING");
      } catch (AdminAlreadyApprovedRequestException e) {
        addErrorMessage("ADMINALREADYPROCESSED");
      } catch (EjbcaException e) {
        addErrorMessage(e.getErrorCode() + e.getMessage());
      }
      return "approveaction";
    }

    public String reject(){
      final Approval approval = new Approval(comment);
      try {
        final Admin admin = EjbcaJSFHelper.getBean().getAdmin();
        ejb.getApprovalSession().reject(admin,  approveRequestData.getApprovalId(), approval, ejb.getGlobalConfigurationSession().getCachedGlobalConfiguration(admin));
        updateApprovalRequestData(approveRequestData.getApproveActionDataVO().getId());
      } catch (ApprovalRequestExpiredException e) {
        addErrorMessage("APPROVALREQUESTEXPIRED");
      } catch (AuthorizationDeniedException e) {
        addErrorMessage("AUTHORIZATIONDENIED");
      } catch (ApprovalException e) {
        addErrorMessage("ERRORHAPPENDWHENAPPROVING");
      } catch (AdminAlreadyApprovedRequestException e) {
        addErrorMessage("ADMINALREADYPROCESSED");
      }
      return "approveaction";
    }

    public void setUniqueId(int uniqueId) {
      log.debug("ApproveActionSessionBean.setApprovalId setting uniqueId : " + uniqueId);
      updateApprovalRequestData(uniqueId)
    }

    public void updateApprovalRequestData(int id){
      Query query = new Query(Query.TYPE_APPROVALQUERY);
      query.add(ApprovalMatch.MATCH_WITH_UNIQUEID, BasicMatch.MATCH_TYPE_EQUALS, Integer.toString(id));
      List<ApprovalDataVO> result;
      try {
        RAAuthorization raAuthorization = new RAAuthorization(EjbcaJSFHelper.getBean().getAdmin(), ejb.getGlobalConfigurationSession(),
            ejb.getAuthorizationSession(), ejb.getCaSession(), ejb.getEndEntityProfileSession());
        result = ejb.getApprovalSession().query( EjbcaJSFHelper.getBean().getAdmin(), query, 0, 1, raAuthorization.getCAAuthorizationString(), raAuthorization.getEndEntityProfileAuthorizationString());
        if (result.size() > 0) {
          this.approveRequestData = new ApprovalDataVOView(result.get(0));
        }
      } catch (IllegalQueryException e) {
        addErrorMessage("INVALIDQUERY");
      } catch (AuthorizationDeniedException e) {
        addErrorMessage("AUTHORIZATIONDENIED");
     
    }

    public String getComment() {
      return "";
    }
    public void setComment(String comment) {
      this.comment = comment;
    }
}
TOP

Related Classes of org.ejbca.ui.web.admin.approval.ApproveActionSessionBean

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.