Php 如何在codeigniter中管理多用户权限
在codeIgniter框架中管理多用户权限和特权的最佳方法是什么 我试着去管理它,它工作得很好。但我必须在每个控制器中调用一个函数。那是我不想的。下面的函数通过会话变量获取控制器名称和数据Php 如何在codeigniter中管理多用户权限,php,codeigniter,user-permissions,Php,Codeigniter,User Permissions,在codeIgniter框架中管理多用户权限和特权的最佳方法是什么 我试着去管理它,它工作得很好。但我必须在每个控制器中调用一个函数。那是我不想的。下面的函数通过会话变量获取控制器名称和数据 function allow_user_permission(){ $ci = & get_instance(); $arr = $ci->session->userdata("userdata")['persissions']; $array = json_de
function allow_user_permission(){
$ci = & get_instance();
$arr = $ci->session->userdata("userdata")['persissions'];
$array = json_decode($arr);
$controller = $ci->router->fetch_class();
$per = (object) array("label"=>$controller,"val"=>true);
$permission = array($per);
if(isset($array)){
$res = in_array($permission, $array, true);
if ($res ==FALSE)
{
redirect(site_url("dashboard"));
}
}
}
您所需要的只是创建一个父控制器,然后使您的控制器从中继承。每次访问任何控制器时,都会实例化父控制器。它的构造函数运行安全检查 1-创建文件application/core/MY_Controller.php(PS:I速记您的代码)
在ci中使用钩子将解决您的问题
<?php
class Parent_controller extends CI_Controller{
public function __construct()
{
parent::__construct();
$this->allow_user_permission();
}
public function allow_user_permission()
{
$arr = json_decode($this->session->userdata['persissions']);
$permission = array("label" = >$this->router->fetch_class(), "val" => true);
if (!empty($array) && !in_array($permission, $array, true))
redirect(site_url("dashboard"));
}
}
class Users extends Parent_controller {
}