| BM???????????2011-12-26 14:43:21by SeaCat 与BM权限控制相关的接口: aurora.bm.IBusinessModelAccessChecker 针对一个BM,返回是否能执行指定的操作 public boolean canPerformOperation( String operation ); aurora.bm.DefaultAccessChecker是这个接口的缺省实现,通过一个set来构造,如果set中包含指定的operation,就返回true。大多数情况下使用这个实现即可。 aurora.bm.IBusinessModelAccessCheckerFactory 根据当前service的context及请求访问的BM,返回一个前面的IBusinessModelAccessChecker实例,用于判断权限。 public IBusinessModelAccessChecker getChecker( String model_name, CompositeMap session_context ) throws Exception; BusinessModel中,通过设置accessControlMode属性,来控制BM访问权限检查的方式 "none": 无控制,可被任何人访问 "separate": 此BM进行独立的权限控制 "default": 缺省模式,如果BM由其他BM派生而来,则向上找父级BM,直至根节点,或者找到一个设置为separate模式的父级BM 通常在应用程序中,将BM权限分配到某个具体的功能下,再将功能分配给角色,从而控制某个角色的用户是否能对某个BM进行特定操作。 对BM执行batch_update时,该操作本身总是被允许的,实际的权限控制是在执行中,针对参数传入的每一条记录,根据该记录要执行的operation(通常来自于记录的_status字段),再来判断是否有操作权限。 为此,需要为应用程序配置一个全局实例,实现IBusinessModelAccessCheckerFactory接口,供执行batch_update时调用。 Demo Attachments |
Comments
0 Responses to the article暂时没有评论。