簡單權限管理設計

這套權限管理是配合Zend Framework設計的,用在其餘地方的時候能夠作些修改。數據庫

1、表構成

  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

 

2、關係說明

1)管理員(sys_user)能夠是一隻羊,例以下面的懶羊羊。權限控制

2)懶羊羊所在的分組(sys_group_user)就是他的家,在他家裏能作的操做就是組的權限(sys_acl_group)。it

3)他在家裏能作不少事情(sys_acl_group),例如躺着吃蛋糕、坐着吃蛋糕、站在窗戶旁邊吃蛋糕等(sys_action)。io

4)他能作不少事情(sys_acl_user),例如靠在樹下睡覺、躺在草地上睡覺或坐在鞦韆上睡覺等(sys_action)。

 

3、數據庫設計

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:禁止

 

4、判斷權限過程

流程圖中的access就是分組權限控制信息表(sys_acl_group)或用戶權限控制信息表(sys_acl_user)中的字段。

相關文章
相關標籤/搜索