我如何检查用户是否是ADMIN

时间:2018-03-13 09:12:03

标签: codeigniter-3

大家好

我正在尝试创建一个允许用户以admin或简单用户身份进行连接的函数,方法是将名为(is_adminn)的users表中的列创建为INT。 目前我正在静态地做这件事:

   function _check_admin_login($username, $pword)
{

    $target_username="firas";
    $target_pass="password";

    if(($username==$target_username) && ($pword==$target_pass)){
        return TRUE;
    }else{
        return FALSE;
    }


    }

然后我会在管理员控制器中调用它:

function username_check($str){


$this->load->module('store_accounts');
$this->load->module('site_security');
$error_msg = "Vous avez saisi un nom d'utilisateur ou un mot de passe incorrecte";

$pword = $this->input->post('pword', TRUE);

 $result = $this->site_security->_check_admin_login($str, $pword);
if($result==FALSE){

  $this->form_validation->set_message('username_check', $error_msg);
        return FALSE;
}else{
    return TRUE;
}



}

我做了很多测试,比如is_adminn的值等于1,它返回True

function _check_admin_login($username, $pword)
{
  $this->load->module('store_accounts');
  $this->store_accounts->fetch_data_from_db();
  $is_adminn = $data['is_adminn'];


if($is_adminn==1){
    return TRUE;
}else{
    return FALSE;
}


}

1 个答案:

答案 0 :(得分:0)

您可以轻松地执行所需操作,首次检查用户名和密码是否匹配,然后检查用户ID是否为状态is_admin 1。

模型

public function check_admin($id){
    $query = $this->db->get_where('user', array('id' => $id, 'is_admin' => 1 ));
    if ($query->num_rows()>0) {
        return true;
    }else{
        return false;
    }
}

控制器

$data['temp'] = $this->User_model->get_id_by_email($data['login']['email']);
$data['user'] = $this->User_model->check_login($data['login']['email'], $data['login']['password']);
if ($data['user'] && $this->Admin_model->check_admin($data['temp'][0]['id'])) {
    $session_data = array(
    //what you wanna store in session
    );