2014-10-05 78 views
0

我想建立的應用程序中會有一些羣體的角色/權限的基礎笨讓用戶訪問控制器

超級管理員,版主,租戶,用戶

爲了使超級管理員將有權訪問所有頁面/視圖和控制器。 但其他組將根據角色/權限訪問頁數/視圖

但是,我根據用戶組提供了主菜單,但是我面臨的問題是。

如果用戶登錄並直接訪問帶鏈接的頁面,則頁面打開,因爲對控制器沒有限制。

它已經幾個小時了,我正在敲我的頭,想出如何限制非真實用戶打開受限制的頁面/視圖。

我可以通過將檢查用戶是否被允許查看控制器看到兩種方式,

  1. 認沽限制每個控制器上。但這將是乏味的工作,我不確定它是否正確。
  2. 把主檢查MY_Controller運行時,每次訪問控制器,這看起來很有前途,但我不知道如何做到這一點。

如果有人有任何想法或經歷過同樣的問題,請幫助我找到解決方案。

回答

0

我在自己的應用程序中所做的是使用MY_Controller擴展核心控制器類,並在那裏爲兩個用戶組創建了兩個函數。然後,在創建一個正常的控制器時,可以通過用戶功能擴展它。例如:

MY_Controller.php

class Super_admin extends CI_Controller{ 
    function __construct(){ 
     parent::__contstruct(); 
     //check for super admin privlidges 
    } 
} 

some_controller.php

class some_controller extends Super_admin{ 
    //do whatever you need in here 
} 
+0

肯定的,但如果你只有2組是唯一的好。 如果有更多的團隊,隨着時間的推移可以創建更多的團體,限制他們查看一些控制器會怎麼樣? 我使用'is_admin()'和'is_allowed'函數實現了選項1,但是我想知道是否有可能在默認情況下在所有控制器上應用這些函數? – 2014-10-06 11:22:33