2013-02-28 79 views
0

所以我在CodeIgniter中創建我的第一個項目,我想知道是否有一種有效的方式來強制用戶限制,基於他們屬於哪個用戶組。CodeIgniter通過會話的用戶權限

此應用程序中有3個用戶組(管理員,教師和學生),每個用戶組都有自己的權限。什麼是實施這個最好的方法?

目前我只是把它放到會話變量中,幾乎在每個頁面上讀取它。有東西告訴我必須有更簡單的方法來做到這一點?

在此先感謝。

親切的問候

格倫

回答

0

用戶表中的一個簡單的組ID對於您的應用程序聽起來會很好。然後你可以像鮎魚說的那樣做,並在控制器構造函數或特定的方法本身中進行檢查。

將來實現像「權限」或「角色」或「範圍」這樣的另一個表格將允許您在應用程序內創建細粒度權限。看到這樣實現的OAuth服務器(https://github.com/alexbilbie/CodeIgniter-OAuth-2.0-Server

function user_get($id) 
{ 
    $this->load->library('oauth_resource_server'); 
    if (! $this->oauth_resource_server->has_scope(array('user.details', 'another.scope'))) 
    { 
     // Error logic here - "access token does not have correct permission to user this API method" 
    } 

    // API code here 
} 

當你需要真正的微調權限,或希望當您創建的RESTful API的實現更靈活的權限,這可能是更適合的路線。對於你當前的情況,在構造函數或方法中進行通用檢查就可以了。

0

如果你把它放到你的控制器的構造函數,它就會叫出每一頁上,但你不必調用它每次使用方法。

1

在數據庫表中使用組標識。並將其存儲到會話中。並使用此組ID檢查授權和身份驗證。