2012-04-20 72 views
1

假設我正在使用Codeigniter構建Web應用程序。我有兩個級別的用戶 - 1. Admin2. Manager。我希望我的管理員可以添加,編輯,刪除,所以在我看來,我的文件有以下幾點:控制Codeigniter中的用戶權限

<a href="somelink">ADD</a> 
<a href="somelink">EDIT</a> 
<a href="somelink">DELETE</a> 

但在某些特定的網頁,我不希望我的經理能夠刪除或編輯任何記錄,他將被允許僅添加數據。現在我的問題是,因爲我有多種類型的用戶和用戶權限,我必須爲我的經理(和其他用戶級別)創建新的控制器和視圖文件,或者有一些更好的方法來處理控制器和查看文件,我將用於管理員?

目前我正在爲ADMIN和MANAGER創建單獨的控制器,模型和視圖文件,這非常痛苦。所以我認爲有一個更好的方法來做到這一點。

你能否給我一些關於如何處理這個問題的專家建議?

要搞清楚,我用我的控制器下面的代碼記錄哪些類型的用戶:提前:)

parent::__construct(); 
    if (!($this->session->userdata('user_type')== 'flex_admin')) 
    { 
     redirect('login'); 
    } 

感謝

回答

1

你最絕對不需要創建單獨的控制器和意見。

您可以將用戶權限類型(1或2)存儲在會話中,然後檢查每個控制器或視圖以檢查用戶的權限。

一個導航視圖中的文件

<div id="nav"> 
    <ul> 
    <li>Home</li> 
    <li>Logout</li> 
    <?php if($this->session->userdata('privilege') == 1) : ?> 
     <li>Delete</li> 
    <?php endif; ?> 
    </ul> 
</div> 

你可以在你的控制器進行同類的檢查,以確保用戶的訪問是適當的進行一些功能的例子。