php – Codeigniter 2.x – 身份验证ACL库
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – Codeigniter 2.x – 身份验证ACL库,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2596字,纯文字阅读大概需要4分钟。
内容图文
![php – Codeigniter 2.x – 身份验证ACL库](/upload/InfoBanner/zyjiaocheng/802/a0d099ff790541db8cd38da6653ff8e3.jpg)
我需要一个Codeigniter 2.x ACL身份验证库.
我需要给3个不同的管理员用户和2个不同的前端用户,并希望通过数据库动态设置所有内容.
请帮忙.
解决方法:
两个最受欢迎的CI认证库(至少截至今年年初)似乎是Ion_auth和Tank_auth.虽然Ion_auth提供单组功能,但都不能处理您的ACL需求.
几个月前我开始在一个项目上使用Tank_auth,但是当我需要更多的灵活性时,我转向了Ion_auth.通过它包含的功能,我添加了一个user_groups表和必要的库和模型函数,以允许每个用户拥有多个组成员身份.
数据结构:
mysql> describe auth_users_groups;
+------------+-----------------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-----------------------+------+-----+-------------------+----------------+
| id | int(11) unsigned | NO | PRI | NULL | auto_increment |
| user_id | mediumint(8) unsigned | NO | | NULL | |
| group_id | mediumint(8) unsigned | NO | | NULL | |
| dt_updated | timestamp | NO | | CURRENT_TIMESTAMP | |
+------------+-----------------------+------+-----+-------------------+----------------+
4 rows in set (0.00 sec)
库中添加了一些代码:
public function get_user_groups($user_id = NULL)
{
if ($user_id === NULL) $user_id = $this->get_user()->id;
return $this->ci->ion_auth_model->get_user_groups($user_id)->result();
}
/**
* is_member - checks for group membership via user_groups table
*
* @param string $group_name
* @return bool
**/
public function is_member($group_name)
{
$user_groups = $this->ci->session->userdata('groups');
if ($user_groups)
{
// Go through the groups to see if we have a match..
foreach ($user_groups as $group)
{
if ($group->name == $group_name)
{
return true;
}
}
}
// No match was found:
return false;
}
一些型号代码:
public function get_user_groups($user_id = NULL)
{
if ($user_id === NULL) return false;
return $this->db->select('group_id, name, description, dt_updated')
->join($this->tables['groups'], 'group_id = '.$this->tables['groups'].'.id', 'left')
->where('user_id', $user_id)
->get($this->tables['users_groups']);
}
public function set_group($user_id, $group_id)
{
$values = array('user_id'=>$user_id, 'group_id'=>$group_id);
$hits = $this->db->where($values)->count_all_results($this->tables['users_groups']);
if ($hits > 0)
{
return NULL;
}
return $this->db->insert($this->tables['users_groups'], $values);
}
public function remove_groups($user_id, $group_ids)
{
$this->db->where('user_id', $user_id);
$this->db->where_in('group_id', $group_ids);
return $this->db->delete($this->tables['users_groups']);
}
内容总结
以上是互联网集市为您收集整理的php – Codeigniter 2.x – 身份验证ACL库全部内容,希望文章能够帮你解决php – Codeigniter 2.x – 身份验证ACL库所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。