背景:系统是半年前设计的,当时的我年少轻狂,只知道将来要做权限的划分,所以在数据库上,就设计了权限表,用户表有一个外键指向权限表。就这样,到了近期,终于到了要做权限的时候了。于是想着要用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>
总结
虽然简单方便,一个管理系统的页面不多,多写几个 就可以了,但是不能创建角色,不能动态控制权限,只是应急的权宜之计,还是用权限框架去控制权限全面些。