【发布时间】:2013-08-05 05:10:27
【问题描述】:
我有一个事件控制器:
class Event extends CI_Controller{
public function index(){
}
public function foo(){
}
//Shouldn't be able to use this method unless logged in
public function bar(){
}
}
我正在尝试组织我的代码,使其相当整洁和直接。刚才我有一个名为 MY_Controller 的控制器,因此只有经过身份验证的用户才能访问任何扩展它的控制器的方法(edit_event()、add_event())。
但是,我的控制器中的某些方法需要由未经身份验证的用户访问(例如 get_event())。
有什么好的方法来处理这个问题?我应该制作两个完全独立的控制器还是从基本事件控制器扩展并添加经过身份验证的方法?
以前我有一个管理控制器来处理所有需要身份验证的方法,例如 add_user、delete_user、add_doc、delete_doc。但是它很快就被弄脏了,并且不容易更新或修改控制器(而且它很乱,似乎没有遵循良好的编程礼仪)。
【问题讨论】:
-
您管理多少个角色?
-
第二种方法。使用它。
-
尝试使用身份验证库,例如 benedmunds.com/ion_auth 或 ACL:stackoverflow.com/questions/5556293/…
-
阅读此内容:philsturgeon.co.uk/blog/2010/02/… 创建另一个名为 member_controller 或类似的控制器并扩展 MY_Controller,将仅需要登录用户访问的所有功能放在那里。我实际上有 3 个,MY,Admin 和 User,admin 和 user 扩展了 MY,它扩展了基本控制器。
标签: php codeigniter access-control