平台默认提供了checkPermissionAction(验证是否拥有权限)这个action
如果需要通过判断某具体的功能是否有权限对页面进行控制,可以自己在java中调用checkPermissionAction,具体的参数设置参考如下:
public static void testPermission(){
//定义一个Map遍历把需要判断的功能的process和activity放到Map中,可以定义多个Map放不同的功能
Map<String, String> funcParams = new HashMap<String, String>();
funcParams.put("process", "/appdemo/test/process/button/buttonProcess");
funcParams.put("activity", "mainActivity");
//定义checkPermissionAction需要的list参数,把功能的Map添加多list中
List<Map<String, String>> actionParam = new ArrayList<Map<String, String>>();
actionParam.add(funcParams);
//定义调用action的ActionUtils.invokeAction这个方法进行传参的Map参数,把List添加到Map中
Map<String, Object> params = new HashMap<String, Object>();
params.put("permissions", actionParam);
ActionContext context = ModelUtils.getRequestContext().getActionContext();
//调用action
ArrayList result = (ArrayList) ActionUtils.invokeAction(context.getProcess().getFullName(), context.getActivity().getName(), "checkPermissionAction", context.getExecutor(), params) ;
//遍历调用action的返回结果,获取每个功能权限判断返回的hasPermission的值
for(Object o : result){
Map permission = (Map) o;
if(permission.get("hasPermission").equals("false")){
System.out.println("没有功能权限");
}
else
System.out.println("有功能权限");
}
}
评一波