Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在codeigniter中管理多用户权限_Php_Codeigniter_User Permissions - Fatal编程技术网

Php 如何在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

在codeIgniter框架中管理多用户权限和特权的最佳方法是什么

我试着去管理它,它工作得很好。但我必须在每个控制器中调用一个函数。那是我不想的。下面的函数通过会话变量获取控制器名称和数据

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 {

}