Codeigniter让用户基于角色/权限访问控制器

时间:2014-10-05 19:23:26

标签: php mysql codeigniter schema

我正在尝试构建应用程序,其中会有一些组

  

超级管理员,版主,租户,用户

为了让Super Admin能够访问所有页面/视图和控制器。 但其他组将根据角色/权限访问页面/视图

然而,我根据用户组填充了主菜单,但我面临的问题是。

如果用户登录并直接访问带有链接的页面,则页面打开,因为对控制器没有限制。

已经过了几个小时,我正在敲打着想弄清楚如何限制非真实用户打开受限制的页面/ View。

我可以看到两种方式,

  1. 通过检查是否允许用户查看该控制器来限制每个控制器。但这将是乏味的工作,我不确定它是否正确。
  2. 对每次访问控制器时运行的MY_Controller进行主检查,这看起来很有希望,但我不知道如何实现这一点。
  3. 如果有人有任何想法或遇到同样的问题,请帮我找一个解决方案。

1 个答案:

答案 0 :(得分: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
}