权限管理

  1. 数据库表设计:

 

  1. 后台的登录时序图:

  1. 详细讲解设计:假定,用户(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

posted @ 2012-07-16 18:34  一点一线  阅读(3293)  评论(14编辑  收藏  举报