2017-01-13 37 views
0

我创建了一个日志的形式对我的管理页面和它的作品,但现在大家谁登录才能访问这些页面。管理员权限与笨

我的用户也属于用户组,我的用户表中有一个group_id列。 admin组有1

的ID我想要做的是,如果有人谁属于管理员组登录才能访问管理页面,但如果用户属于不同的组,并试图登录被重定向到主页或任何地方。

我试图做的是类似的代码添加到管理页面控制器

class Dashboard extends MY_Controller { 
public function __construct() { 
    parent::__construct(); 

    // Access control 
    if(!$this->session->userdata('logged_in')) { 
     redirect('admin/login'); 
    } 
} 
} 

我的模型

class Authenticate_model extends CI_Model { 
    public function login_user($username, $password){ 
     //Secure password 
     $enc_password = md5($password); 

     //Validate 
     $this->db->where('username',$username); 
     $this->db->where('password',$enc_password); 

     $result = $this->db->get('users'); 

     if($result->num_rows() == 1){ 
      return $result->row(); 
     } else { 
      return false; 
     } 
    } 
} 

回答

0

你可以自己做,提供验证和设置$ SESSION变量以检索用户是否登录。但这是太多工作,并且容易出错。 我建议你使用这个流行的图书馆:https://github.com/benedmunds/CodeIgniter-Ion-Auth。这很容易设置,你只需要复制一些文件,你就可以开始了。

0

如果你真的想这样做,你的自我(那问题),那么你需要在SESSION存储两个变量 - LOGGED_IN和is_admin。

我会建议两个创建用的库函数:

function is_logged_in($admin = FALSE){ 
    $is_logged = $this->session->userdata('logged_in'); 
    if($admin){ 
     $is_logged = $this->session->userdata('is_admin') 
    } 
    return $is_logged; 
} 

这假定您存储两个布尔值“LOGGED_IN”和SESSION“is_admin”(如果用户已经GROUP_ID = 1,那么你将存储TRUE在is_admin)

然后你就可以保护您的网站会员专属网页

if(!$this->your_authenticatation_library->is_logged_in()){redirect('notMembersControler')} 

和管理页面:

if(!$this->your_authenticatation_library->is_logged_in(TRUE)){redirect('notMembersControler')} 

这就是基本的想法,你需要解决取决于你是做什么。希望这可以帮助!