資料庫表結構
() () () () () ()
假定我們使用了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取得他所屬於的菜單選項,這樣就得到了目前使用者所擁有的菜單許可權。
http://www.bkjia.com/PHPjc/440252.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/440252.htmlTechArticle資料庫表結構 ( ) ( ) ( ) ( ) ( ) ( ) 假定我們使用了MVC的結構,並通過url訪問對應的模組及類和函數。 表中第一行表示一個操作,title表示操作...