我在项目auth库中使用Ion_auth代码进行CodeIgniter。我正在尝试为其他用户类型(除了admin之外有三种用户类型)创建类似is_admin()
的功能,以检查登录用户是否属于这三种类型中的一种,因此我可以将它们重定向到他们各自的页面。 Ion_auth正在使用名为 is_admin 的事件,但我无法理解Ion_auth_model.php
中发生的事件以及它如何检查登录用户是否为admin。那么如何才能使其他功能/事件与此类似呢?
我知道我可以做一些事情,比如查询数据库并检查用户组,但我想按照Ion_auth的方式做。这样我也可以通过实际理解股票代码来满足自己。
答案 0 :(得分:4)
我只关注github上的源代码。
由于许多auth库存储,您在会话中查找的信息和库本身会检查会话变量。
您正在寻找的功能是在文件应用程序/库/ Ion_auth.php中的第447行
public function is_admin($id=false)
{
$this->ion_auth_model->trigger_events('is_admin');
$admin_group = $this->config->item('admin_group', 'ion_auth');
return $this->in_group($admin_group, $id);
}
为了创建你自己的我建议你反转engeneer模型(ion_auth_model.php)
但是! Ion已经为您提供了一种解决方法,这种方法就是您正在寻找的方法
in_group()
$group = 'gangstas';
if (!$this->ion_auth->in_group($group))
{
$this->session->set_flashdata('message', 'You must be a gangsta to view this page');
redirect('welcome/index');
}
答案 1 :(得分:0)
函数is_admin()
指的是文件/application/config/ion_auth.php中定义的管理组:$config['admin_group'] = 'admin'; // Default administrators group, use name
。
admin_group名称本身存储在ion_auth数据库字段groups.name。
中