EAS8.2,WAF2,打开菜单(列表界面)时进行权限/业务校验

业务场景:登录门户Portal之后,打开业务单据的列表界面,如果当前用户没有相应权限或者不符合某项业务要求时,不允许打开列表界面。

可在Web扩展开发平台中,插入后台功能。例如在标准产品界面加载PageOnLoad之前插入Handler,进行业务校验。

抛出WafException异常时,会中断操作。

package com.kingdee.eas.custom.test.good.handler;

import com.kingdee.bos.Context;
import com.kingdee.bos.eventbus.event.view.AbstractOnRequestEvent;
import com.kingdee.bos.eventbus.event.view.IPageOnLoadEventHandler;
import com.kingdee.bos.webframework.context.WafContext;
import com.kingdee.bos.webframework.dynamic.handler.AbstractWebEventHandler;
import com.kingdee.bos.webframework.exception.WafException;
import com.kingdee.eas.base.permission.UserInfo;
import com.kingdee.eas.basedata.org.CompanyOrgUnitInfo;
import com.kingdee.eas.custom.test.util.CoreUtil;
import com.kingdee.eas.util.app.ContextUtil;

/**
 * 界面加载功能,进行权限校验
 * @author 作者
 *
 */
public class PageOnLoadHandler extends AbstractWebEventHandler implements IPageOnLoadEventHandler {

	/**
	 * 权限校验不通过时,不允许打开列表界面
	 */
	@SuppressWarnings("unchecked")
	@Override
	public void onLoad(AbstractOnRequestEvent event) {
		
		/*
		 * 当前组织,要根据查看权限的组织属性,可能是财务组织或者成本中心等
		 * 权限主键,可以从数据库中查询,或者从权限文件中获取
		 */
		Context ctx = WafContext.getInstance().getContext();  
		UserInfo user = ContextUtil.getCurrentUserInfo(ctx); //当前用户
		CompanyOrgUnitInfo company = ContextUtil.getCurrentFIUnit(ctx); //当前财务组织
		boolean flag = CoreUtil.hasPerm(user, company.getId(), "3598b441-0106-1000-e000-0003c0a8128dPERMITEM");
		if(!flag){
			throw new WafException("当前用户缺少" + company.getName() + "的某某权限!");
		}
		
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值