2014-10-05 57 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