package com.fr.plugin.fg.auth; import com.fr.log.FineLoggerFactory; import com.ytec.authAPI.interFace.AuthIF; import com.ytec.authAPI.interFace.bean.AuthObjDtl; import java.util.*; public class FGAuthApi { private static final String DMNS_TYPE_ALL = "d_pf_all"; public static Map>> tempAuth = null; static { FineLoggerFactory.getLogger().info("FGAuth:报表工程启动,开始获取模板权限"); updateTempAuth(); } public static boolean updateTempAuth(){ Map>> menuAuthMap = new HashMap>>(); try { AuthIF authIF_ = AuthIF.getInstance(); List objList = authIF_.getAuthedDmnsVlByDmnsTyp(DMNS_TYPE_ALL);//AuthObjDtl为权限详细 if (objList.size() > 0) { for (AuthObjDtl authObj : objList) { Set objIDList = menuAuthMap.get(authObj.getDmnsDtl().getDmnsVlCd()) == null ? null: menuAuthMap.get(authObj.getDmnsDtl().getDmnsVlCd()).get(authObj.getObjTyp());//authObj.getDmnsDtl()为维度值详细,包括报表ID和报表名称 if (objIDList == null) { Map> objAuthMap = new HashMap>(); objAuthMap.put(AuthObjDtl.OBJ_TYP_ROLE, new HashSet()); // role objAuthMap.put(AuthObjDtl.OBJ_TYP_USR, new HashSet()); // usr menuAuthMap.put(authObj.getDmnsDtl().getDmnsVlCd(), objAuthMap); objIDList = objAuthMap.get(authObj.getObjTyp());//authObj.getObjTyp()为授权对象类型,包括role和usr两种类型,平台可以针对用户或者角色进行权限设置 } objIDList.add(authObj.getObjId());//authObj.getObjId()既对应的授权对象ID,根据对象类型,是用户ID或者角色ID } //objAuthMap_ = menuAuthMap; } else { FineLoggerFactory.getLogger().error("FGAuth:从权限API取得菜单权限失败"); return false; } //lastUpdateTime_ = typeInfo.getLatestUpdateTime(); } catch (Exception e) { FineLoggerFactory.getLogger().error("FGAuth:从权限API更新·权限设置失败", e); return false; } FineLoggerFactory.getLogger().info("FGAuth:读取到的模板权限为 " + menuAuthMap); tempAuth = menuAuthMap; return true; } }