权限管理
- 数据库表设计:
- 后台的登录时序图:
- 详细讲解设计:假定,用户(op)为zhangsan ,id是1,角色是:200. 那么以下的情况:
a) 权限文件
i.当 添加/修改 用户权限时,会修改对应权限文件,该文件以用户id(op_id)为名 1.php,存放在指定的权限文件夹下
ii.删除用户时,会把对应的权限文件删除
iii.验证权限时,会把该权限文件引入,在根据当前访问连接地址,比如:http://www.xxx.com/user/op.php?act=del ,会获取/user/op.php这部分的page_url,来获取menu表中与之对应的id,而act=del则表示他的权限,【根据权限文件中存放的是:menu_id=>权限】这样的格式,就可以对比出,用户是否有权限访问。当然,如果权限文件中连这个menu_id都没有的话,肯定是没有权限的。
b)菜单文件
i.跟权限文件一样,也是在用户添加权限后,就会把它对应的权限的菜单,生成一个以id为名的html文件.(1.html)
ii.用户删除后,对应的1.html文件删除.
iii.登录成功后,后台的右侧菜单,就导入该文件,渲染一下即可。
iv.菜单分为:固定菜单[配置文件,针对角色高的用户拥有] 和 可分配的菜单[存放在数据库],不同的角色,菜单不一样,如果是普通的角色,那么肯定没有固定菜单的权限。
c)操作员角色(op_role) 包括:1 = 操作员,200 = 运维操作员,254 = 超级管理员,255 = 系统管理员
i.这里所用到的角色不是用来控制权限。而只是控制后台的菜单,假如用户(op) A角色是255,那么会有在判断用户权限时,就会显示出该角色对应的固定菜单,比如:用户的管理,菜单的管理,不会因为删除了所有菜单而导致无法使用的情况!
d)验证流程:
i. 菜单载入流程
ii. 权限的判断:
权限的运算:http://www.cnblogs.com/toby/archive/2011/10/23/2221863.html