在CodeIgniter中实施ACL的最佳方法是什么?
以下是我们正在使用的内容:
文章,作者
有两种类型的作者:
考虑到功能将扩展(需要对作者类型进行权限限制的更多功能),在CodeIgniter中执行ACL的最佳方法是什么?
答案 0 :(得分:2)
您需要为每种类型的权限分离控制器,并且有一个模块在用户使用该特定控制器允许的权限类型登录时检查会话变量集。
// module User_model:
function is_logged_in_admin()
{
$is_logged_in = $this->session->userdata('is_logged_in');
$user_status = $this->session->userdata('user_type');
if(!isset($is_logged_in) || $is_logged_in != true || $user_status != 'admin')
{
$this->session->sess_destroy();
redirect('please_login/', 'refresh');
}
}
控制器,加载模块并检查构造:
function __construct()
{
parent::__construct();
$this->load->model('User_model');
$this->User_model-> is_logged_in_admin();
}
答案 1 :(得分:0)
我正在编写基于ACL的授权系统,该系统会检查URL级别的权限。它应该是透明的,并且认证系统是不可知的。它被实现为一个post controller构造函数钩子。
可悲的是它没有完成。但是如果你想完成它,你可以检查出on github并分叉。 atm它只适用于在配置文件中编码的ACL,但它允许外部组/角色源(我还没写过)。