Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将访问级别添加到储罐认证_Php_Codeigniter_Codeigniter 2_Tankauth_Access Levels - Fatal编程技术网

Php 如何将访问级别添加到储罐认证

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)字段,因为它可以被操纵 只需将其设置

我正在使用ci 2,我在前面的文章中看到,您推荐tank_auth作为用户auth的最佳库。我下载了它,但不知道如何在tank_auth中设置访问级别

我应该手动修改这个吗

我想在users表中添加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
 }