Package com.exedosoft.plat.action

Source Code of com.exedosoft.plat.action.DOAuthUserSave

package com.exedosoft.plat.action;

import java.util.List;

import com.exedosoft.plat.DAOUtil;
import com.exedosoft.plat.ExedoException;
import com.exedosoft.plat.bo.BOInstance;
import com.exedosoft.plat.bo.DOBO;
import com.exedosoft.plat.bo.DOService;
import com.exedosoft.plat.bo.org.DOAuthorization;
import com.exedosoft.plat.bo.org.OrgParter;
import com.exedosoft.plat.bo.org.SessionParterFactory;
import com.exedosoft.plat.util.DOGlobals;

/**
*
* 支持反向授权的用户授权方案。 用户权限保存的思路,首先判断一下是否需要进行权限配置,如果不需要即返回。
* 如果需要,把配置在用户上的权限全部去掉,重新进行配置。
*
* @author IBM
*
*/

public class DOAuthUserSave extends DOAbstractAction {

  /**
   *
   */
  private static final long serialVersionUID = -2024127657008811808L;
 
  private static DOService setRoleExcel = DOService.getService("do.bx.role.update.xes.excel");

 
  private static DOService setRoleExcelNull = DOService.getService("do.bx.role.update.xes.excel.no");

  @Override
  public String excute() throws ExedoException {
    // TODO Auto-generated method stub

    String parterUid = DOGlobals.getInstance().getSessoinContext()
        .getFormInstance().getValue("parterUid");
    if (parterUid == null) {
      return null;
    }
   
   
    ///////////formModel的权限配置
    String fmConfigs = DOGlobals.getInstance().getSessoinContext()
    .getFormInstance().getValue("fmConfigs");
   
   
   
   
    ///////////////////////////isExcel 是否可以导出到excel
    String isExcel = DOGlobals.getInstance().getSessoinContext()
    .getFormInstance().getValue("isExcel");
    if("5".equals(isExcel)){
      setRoleExcel.invokeUpdate(parterUid);
    }else{
      setRoleExcelNull.invokeUpdate(parterUid);
    }
///////////////////////end

    authMenu(parterUid);

    return null;
  }

  private void authMenu(String parterUid) {
    List allAuthMenus = SessionParterFactory.getSessionParter()
        .getMenuAuthConfigByAccount(parterUid);

    DOBO boUser = OrgParter.getDefaultEmployee().getDoBO();
    BOInstance user = boUser.getInstance(parterUid);

    System.out.println("Enter:::::::::::::DOAuthUserSave");

    if (user == null) {
      System.out.println("User is null!!!!!!!!!");
      return;
    }

    String authcofig = DOGlobals.getInstance().getSessoinContext()
        .getFormInstance().getValue("authcofig");
    String[] menuConfigs = authcofig.split(";");

//    WFDAO dao = new WFDAO();
//    dao.setAutoClose(false);
    try {

      // /////////////////删除权限设置
      for (int i = 0; i < menuConfigs.length; i++) {
        String[] aConfig = menuConfigs[i].split(",");
        if (aConfig[0] != null && !"".equals(aConfig[0])) {

          String dbAccess = "0";
          if (allAuthMenus.contains(aConfig[0])) {
            dbAccess = "1";
          }
          if (!dbAccess.equals(aConfig[1])) {
            DOAuthorization.removeDOAuthorizations(OrgParter
                .getDefaultEmployee(), user.getUid(),
                DOAuthorization.WHAT_UI_MENU, aConfig[0]);

          }

        }
      }

      // ////////////删除之后再计算一下权限设置
      allAuthMenus = SessionParterFactory.getSessionParter()
          .getMenuAuthConfigByAccount(parterUid);

      // //////////////////增加权限设置

      for (int i = 0; i < menuConfigs.length; i++) {
        String[] aConfig = menuConfigs[i].split(",");
        String dbAccess = "0";
        if (allAuthMenus.contains(aConfig[0])) {
          dbAccess = "1";
        }
        if (!dbAccess.equals(aConfig[1])) {

          DOAuthorization da = new DOAuthorization();
          da.setParterUid(OrgParter.getDefaultEmployee().getObjUid());
          da.setOuUid(user.getUid());
          da.setWhatType(DOAuthorization.WHAT_UI_MENU);
          da.setWhatUid(aConfig[0]);
          if (("0".equals(aConfig[1]))) {
            da.setAuthority(Boolean.FALSE);
            da.setIsInherit(Boolean.TRUE);
          } else {
            da.setAuthority(Boolean.TRUE);
            da.setIsInherit(Boolean.TRUE);
          }
          DAOUtil.BUSI().store(da);

        }
      }
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  //  dao.closeSession();
  }

//  private void authAMenu(String isAccess, DOMenuModel dmm, WFDAO dao,
//      BOInstance user) throws DAOException {
//    if ((dmm.isAccess(user.getUid()) && "0".equals(isAccess))
//        || (!dmm.isAccess(user.getUid()) && "1".equals(isAccess))) {
//
//      DOAuthorization.removeDOAuthorizations(OrgParter
//          .getDefaultEmployee(), user.getUid(),
//          DOAuthorization.WHAT_UI_MENU, dmm.getObjUid());
//
//      if ((dmm.isAccess(user.getUid()) && "0".equals(isAccess))
//          || (!dmm.isAccess(user.getUid()) && "1".equals(isAccess))) {
//
//        DOAuthorization da = new DOAuthorization();
//        da.setParterUid(OrgParter.getDefaultEmployee().getObjUid());
//        da.setOuUid(user.getUid());
//        da.setWhatType(DOAuthorization.WHAT_UI_MENU);
//        da.setWhatUid(dmm.getObjUid());
//
//        if (("0".equals(isAccess))) {
//          da.setAuthority(Boolean.FALSE);
//        } else {
//          da.setAuthority(Boolean.TRUE);
//        }
//        dao.store(da);
//      }
//    }
//  }

}
TOP

Related Classes of com.exedosoft.plat.action.DOAuthUserSave

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.