我是這個codeigniter的新手。我正在構建一個在用戶角色扮演重要角色的應用程序。在控制器中,我想檢查用戶是否具有特定的角色或權限,然後授予對函數的訪問權限。我想知道是否可以創建一個流程,以便我不需要檢查每個控制器的權限或角色,只有在擴展時才能完成此操作。我可以這樣做嗎?設計用戶權限檢查的方法
/** **更新/
我會怎麼辦,如果我想在一個控制器或僅在控制器的一些方法每種方法設置權限。
我是這個codeigniter的新手。我正在構建一個在用戶角色扮演重要角色的應用程序。在控制器中,我想檢查用戶是否具有特定的角色或權限,然後授予對函數的訪問權限。我想知道是否可以創建一個流程,以便我不需要檢查每個控制器的權限或角色,只有在擴展時才能完成此操作。我可以這樣做嗎?設計用戶權限檢查的方法
/** **更新/
我會怎麼辦,如果我想在一個控制器或僅在控制器的一些方法每種方法設置權限。
<?php
class Secure_area extends CI_Controller
{
function __construct($module_id=null)
{
parent::__construct();
$this->load->model('Employee');
if(!$this->Employee->is_logged_in())
{
redirect('login');
}
if(!$this->Employee->has_permission($module_id,$this->Employee->get_logged_in_employee_info()->person_id))
{
redirect('no_access/'.$module_id);
}
//load up global data
$logged_in_employee_info=$this->Employee->get_logged_in_employee_info();
$data['allowed_modules']=$this->Module->get_allowed_modules($logged_in_employee_info->person_id);
$data['user_info']=$logged_in_employee_info;
$this->load->vars($data);
}
}
?>
把你首先要做好__construct每一件事....
嗨,我開發了在那裏我遇到同樣的問題一個系統...如下因素是我的問題,存儲所有位指示名(或模塊中我的問題)
一個表e.g USER1 MOD1 0 USER1 MOD2 1 USER1 MOD3 1 。 。 user2的MOD1 1 user2的模2 0 user2的量mod3 1
在文件中創建(secure_area.php EXTENDS是CI_Controller),檢查is_logged_in(){是:has_permission(){是:做的事情....繼續,沒有:重定向(權限被拒絕)},否:(重定向(登錄))}
而我所有的控制器擴展secure_area.php。
但在父類烏爾檢查權限。但在父母課堂上我不知道哪個控制器被稱爲儀式? – Hacker
但子類正在擴展父類...即父類中的代碼是子類的一部分..基本上用於user1 .... www.example.com/index.php/mod1/function/arg ....將他重定向到權限被拒絕的頁面......但www.example.com/index.php/mod2/function/arg....將允許他訪問 –
require_once(「secure_area.php」); mod1 EXTENDS secure_area –
我們是否需要檢查會話中的任何事情? – Hacker
的我們怎麼做? $ this-> Employee-> is_logged_in()(在'Empployee'模型中定義)將會查找userdata('some variable')的會話並返回'true'或'false'。 –