(RBAC)基于角色的访问控制
数据表设计
共三张表:用户表、角色表或用户组、权限表。
用户表(包含角色id)跟角色挂钩、角色表(里的ids是权限表的主键id集合)跟权限表挂钩。并在表中添加相应的数据
优点:1.后期维护方便
2.在开发初期有了权限规范,方便开发
动态添加后台首页的左侧导航菜单
A:注意需求:1.左侧菜单应该显示用户权限范围内的菜单信息
2.超级管理员应该拥有全部权限
B:左侧菜单应该是登录成功后要显示的页面,所以登录时我们把角色id被保存到session中了,这样我们把角色id=1默认设为超级管理员,所以我们
Function left(){
$role_id=session(‘role_id’);
if(role_id != 1)时{
//查询role_ids权限集合
查询菜单信息,注意把顶级菜单和下级菜单分开来查询 分开分配到模板
查询顶级和下级菜单时家一个判断条件(权限id in(roleids))
}else{
否则就是超级管理员信息
查询菜单信息,注意把顶级菜单和下级菜单分开来查询 分开分配到模板
}
}
建立role /auth/user Controller 并在模板展示
分配权限
五、权限完善 防跳墙访问
注意两点:1.没有登录访问后台
2.防止登录后访问没有权限的方法
通过地址栏绕过权限访问
网友评论