简单的if else 实现权限控制


背景:系统是半年前设计的,当时的我年少轻狂,只知道将来要做权限的划分,所以在数据库上,就设计了权限表,用户表有一个外键指向权限表。就这样,到了近期,终于到了要做权限的时候了。于是想着要用spring security,可是鉴于已有代码和自身的能力,短期内还不能集成spring security。于是便在原有的权限表和用户表去实现。

要求:对后台管理系统实现超级管理员和系统观察员两个角色的区分,各自具有的权限不同,超级管理员什么都能干,系统观察员只能看,不能修改、删除。

解决思路:在权限表中定义好每个权限,比如1代表超级权限,2代表观察员,在jsp界面中判断权限,决定展示功能

看看一个demo

  • 数据库

    权限表 authority

    这里写图片描述

    admin 表

    这里写图片描述

  • 在后台代码中,当用户一登录,判断用户的权限,此后,把用户的权限带到每个界面

model.addAttribute("admin", admin);
  • 在jsp界面中,可以通过el表达式控制,如下代码所示,根据权限判断要不要显示change和delete功能。
    <c:choose>  
       <c:when test="${admin.authority == 1}">
           <th>change</th>
           <th>delete</th>
       </c:when>  
       <c:otherwise>
       </c:otherwise>  
   </c:choose> 
  • 总结

    虽然简单方便,一个管理系统的页面不多,多写几个 就可以了,但是不能创建角色,不能动态控制权限,只是应急的权宜之计,还是用权限框架去控制权限全面些。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值