Php 如何将访问级别添加到储罐认证
我正在使用ci 2,我在前面的文章中看到,您推荐tank_auth作为用户auth的最佳库。我下载了它,但不知道如何在tank_auth中设置访问级别 我应该手动修改这个吗 我想在users表中添加group_id字段,只需调整注册表即可将group_id保存给每个新用户,但我讨厌重新设计轮子,所以我的问题 这个调整已经存在了吗?还是我应该硬编码?如果没有任何关于最好的方法的线索,这样我就不会弄乱坦克的认证代码了Php 如何将访问级别添加到储罐认证,php,codeigniter,codeigniter-2,tankauth,access-levels,Php,Codeigniter,Codeigniter 2,Tankauth,Access Levels,我正在使用ci 2,我在前面的文章中看到,您推荐tank_auth作为用户auth的最佳库。我下载了它,但不知道如何在tank_auth中设置访问级别 我应该手动修改这个吗 我想在users表中添加group_id字段,只需调整注册表即可将group_id保存给每个新用户,但我讨厌重新设计轮子,所以我的问题 这个调整已经存在了吗?还是我应该硬编码?如果没有任何关于最好的方法的线索,这样我就不会弄乱坦克的认证代码了 谢谢您不想在表单中允许隐藏(group_id)字段,因为它可以被操纵 只需将其设置
谢谢您不想在表单中允许隐藏(group_id)字段,因为它可以被操纵 只需将其设置为组id的默认值,并通过您的管理进行更改 基本理念/实施: 添加到用户表中 - - 您可以在这里规范化权限列,并有多个选择
create table `groups`(
id smallint unsigned not null auto_increment primary key,
`name` varchar(20) not null,
`permissions` varchar(255) not null, //JSON object '["read", "edit", "delete", "admin", "super"]'
created_at datetime
)engine=innodb;//or whatever engine you like
-
从我的头顶上
class MY_Controller extends CI_Controller{
protected $_user;
protected $_permissions=array();
protected $_group;
public function __construct()
{
parent::__construct();
//check for a user logged in
$this->_user = ( $user ) ? $user : NULL;
//if user, get group and permissions
if($this->_user !== NULL)
{
$this->_get_group();
$this->_get_permissions();
}
}
public function _get_group(){
return $this->_group = $this->_user->group->name; //need to work this bit out
}
public function _get_permissions(){
return $this->_permissions = json_decode($this->_user->permissions, TRUE);
}
public function can_read(){
return in_array('read', $this->_permissions);
}
/// and so on etc
}
create table `groups`(
id smallint unsigned not null auto_increment primary key,
`name` varchar(20) not null,
`permissions` varchar(255) not null, //JSON object '["read", "edit", "delete", "admin", "super"]'
created_at datetime
)engine=innodb;//or whatever engine you like
class MY_Controller extends CI_Controller{
protected $_user;
protected $_permissions=array();
protected $_group;
public function __construct()
{
parent::__construct();
//check for a user logged in
$this->_user = ( $user ) ? $user : NULL;
//if user, get group and permissions
if($this->_user !== NULL)
{
$this->_get_group();
$this->_get_permissions();
}
}
public function _get_group(){
return $this->_group = $this->_user->group->name; //need to work this bit out
}
public function _get_permissions(){
return $this->_permissions = json_decode($this->_user->permissions, TRUE);
}
public function can_read(){
return in_array('read', $this->_permissions);
}
/// and so on etc
}