2017-01-13 161 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')} 

這就是基本的想法,你需要解決取決於你是做什麼。希望這可以幫助!