权限管理的职责范围

界面层权限管理职责范围
先看这张如下界面要素:
 
下拉框:显示内容可能和当前用户有关。这种情况下,下拉框内容由权限管理系统提供。权限管理系统不负责render该下拉框,而只是负责给出Collection<Entity>。
按钮、链接(包括显示列表后面的操作链接):是否显示该按钮,是否显示该链接,可能和当前用户有关。这种情况下,是否显示该按钮,是否显示该链接,由权限管理系统做出决策。权限管理系统不负责render该按钮、该链接,而只是负责给出true/false决策。
显示列表:显示哪些值,显示值的哪些字段,也就是行列级,可能和当前用户有关。这种情况下,显示列表内容由权限管理系统提供。权限管理系统不负责render该表格,而只是负责给出Collection<Entity>。权限管理系统应该支持分页。


Application层权限管理职责范围
先看看这样的代码:

if( condition1 ) {
   dao.insertTableA( entity );
} else if( condition2 && condition3 ) {
    dao.insertTableA( entity );
} else if( condition4 || condition5 || condition6 ) {
    dao.insertTableA( entity );
}

 


看到这段代码,很多人肯定会笑。觉得太幼稚了。
静下心来,好好想想目前手头的系统,尤其是经过3、4遍需求变更后的系统。程序里面散布着if/else判断。甚至本来全是为了dao.insertTableA( entity )。结果不同人修改后,if/else都不在一起了。会是这个样子:
if( condition1 ) {
    dao.insertTableA( entity );
}
some code here
if( condition2 && condition3 ) {
    dao.insertTableA( entity );
}

some code here
if( condition4 || condition5 || condition6 ) {
    dao.insertTableA( entity );
}
 

OK。代码演示到这里。
如果采用权限管理系统管理权限,代码应该是这样的:
if( SercurityService.permit( ... ) ) {
    dao.insertTableA( entity );
}
 

所有的权限逻辑尽在SercurityService里面。

怎样与权限系统交互
直接通过API交互,需要的时候调用一下即可。根据各个项目需求不同,可以自行封装成aop,proxy等等。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值