这套权限管理是配合Zend Framework设计的,用在其余地方的时候能够作些修改。数据库
1.总共有七张表组成框架
2.管理员信息表(sys_user)、系统模块信息表(sys_module)与用户分组信息表(sys_group)这三张是独立的表,没有与其余表发生关系。数据库设计
3.用户分组信息表(sys_action)保存的就是一个个的操做行为,要控制的权限就是这些操做。函数
4.分组与用户信息表(sys_group_user)保存是用户与分组的关系,将一个个用户分组能够方便用组来控制权限。spa
5.用户权限控制信息表(sys_acl_user)用于保存一个个用户单独的权限。设计
6.分组权限控制信息表(sys_acl_group)用于保存一个个组的权限。blog
1)管理员(sys_user)能够是一只羊,例以下面的懒羊羊。权限控制
2)懒羊羊所在的分组(sys_group_user)就是他的家,在他家里能作的操做就是组的权限(sys_acl_group)。it
3)他在家里能作不少事情(sys_acl_group),例如躺着吃蛋糕、坐着吃蛋糕、站在窗户旁边吃蛋糕等(sys_action)。io
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)中的字段。