許可權控制的一個思路_PHP教程

來源:互聯網
上載者:User
資料庫表結構

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

假定我們使用了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表示操作...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.