程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 權限控制的一個思路

權限控制的一個思路

編輯:關於PHP編程

數據庫表結構

 ()  ()  ()  ()  ()  ()   

假定我們使用了MVC的結構,並通過url訪問對應的模塊及類和函數。

表中第一行表示一個操作,title表示操作名,menu_id表示屬於哪一個菜單選項,module表示模塊名(沒有可以略過),class表示類名,method表示函數名

此外我們還需要一個用戶組的表,大致如下:

其中access_list中保存的當前用戶組所擁有的權限ID(對應上個權限表中的ID)

當然我們還需要一個用戶表來對應用戶組表

group_id表示的第用戶所對應的用戶組

當我們訪問一個url的時候,比如:

http://testApp.test.com/index.php/module/testModule/testClass/testAction

通過路由分析,我們得到相應的數據:

模塊->testModule

類->testClass

函數->testAction

通過三個參數,我們查找權限表中的數據,得到一個唯一的id值。

然後對比用戶組中access_list中的數據,如果數據中包括有這個id,那麼當前用戶擁有當前操作的權限,反之沒有權限。

 

那麼我們如何來控制菜單選項,當用戶有權限時才顯示呢?

因為在權限表中的每個操作都對應有一個menu_id,即菜單選項。我們通過查找當前用戶所屬於的用戶組信息,得到他所擁有的權限操作ID,再通過ID取得他所屬於的菜單選項,這樣就得到了當前用戶所擁有的菜單權限。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved