随笔- 443  文章- 77  评论- 996  阅读- 105万 

这套权限管理是配合Zend Framework设计的,用在其他地方的时候可以做些修改。

一、表构成

  1.总共有七张表组成

  2.管理员信息表(sys_user)、系统模块信息表(sys_module)与用户分组信息表(sys_group)这三张是独立的表,没有与其他表发生关系。

  3.用户分组信息表(sys_action)保存的就是一个个的操作行为,要控制的权限就是这些操作。

  4.分组与用户信息表(sys_group_user)保存是用户与分组的关系,将一个个用户分组可以方便用组来控制权限。

  5.用户权限控制信息表(sys_acl_user)用于保存一个个用户单独的权限。

  6.分组权限控制信息表(sys_acl_group)用于保存一个个组的权限。

 

二、关系说明

1)管理员(sys_user)可以是一只羊,例如下面的懒羊羊。

2)懒羊羊所在的分组(sys_group_user)就是他的家,在他家里能做的操作就是组的权限(sys_acl_group)。

3)他在家里能做很多事情(sys_acl_group),例如躺着吃蛋糕、坐着吃蛋糕、站在窗户旁边吃蛋糕等(sys_action)。

4)他能做很多事情(sys_acl_user),例如靠在树下睡觉、躺在草地上睡觉或坐在秋千上睡觉等(sys_action)。

 

三、数据库设计

1)管理员信息表(sys_user)

userID INT 管理员编号
userAccount VARCHAR 管理员登录账号
userPasswd VARCHAR 管理员登录密码

 

2)系统模块信息表(sys_module)

moduleID INT 模块编号
moduleKey VARCHAR

模块Key,就是ZF框架中的Controller层的名字,例如SystemController,就保存为system

moduleName VARCHAR 模块中文名称

 

3)用户分组信息表(sys_group)

groupID INT 用户分组编号
groupName VARCHAR 用户分组名称

 

4)模块功能信息表(sys_action)

actionID INT 功能编号
moduleKey VARCHAR 所属模块名,对应的就是表2中的moduleKey,例如system
actionKey VARCHAR

功能key,就是Controller各个文件中的Action函数,例如addAction函数,保存进来的就是open

actionName VARCHAR

功能的中文名称

 

5)分组与用户信息表(sys_group_user)

id INT 编号
groupID INT 分组编号
userID INT 用户编号

 

6)用户权限控制信息表(sys_acl_user)

id INT 权限编号
userID INT 用户编号
actionID INT 功能编号
access TINYINT 使用权限, 1:允许, 0:禁止

 

7)分组权限控制信息表(sys_acl_group)

id INT 权限编号
groupID INT 分组编号,与表6的区别
actionID INT 功能编号
access TINYINT 使用权限, 1:允许, 0:禁止

 

四、判断权限过程

流程图中的access就是分组权限控制信息表(sys_acl_group)或用户权限控制信息表(sys_acl_user)中的字段。

 posted on   咖啡机(K.F.J)  阅读(3340)  评论(10编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示