zl程序教程

您现在的位置是:首页 >  IT要闻

当前栏目

简单权限管理设计

2023-02-18 16:47:22 时间

这套权限管理是配合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)中的字段。