rediriger vers l'administrateur et l'utilisateur en fonction du rôle de l'utilisateur dans le code igniter


Sourire kisan

Si l'administrateur se connecte. Je veux qu'il accède à admin / dashboard. sinon au tableau de bord des utilisateurs. Le contrôleur de connexion est le suivi. Dans le tableau des utilisateurs, j'ai une colonne de «rôle» et la valeur est «1» et «2». 1 représente admin et 2 utilisateur. et il y a un tableau séparé pour le rôle.

Fonction de connexion utilisateur

public function login(){
    $data['title'] = 'Login';

    //validating form
    $this->form_validation->set_rules('username', 'Username', 'required');

    $this->form_validation->set_rules('password', 'Password', 'required');

    if($this->form_validation->run() ===FALSE){
        $this->load->view('templates/header');
        $this->load->view('users/login', $data);
        $this->load->view('templates/footer');
    }else{
        //Get username
        $username = $this->input->post('username');

        //Get password in md5 
        $password= md5($this->input->post('password'));

        //Login User.... passing username and password
        $user_id = $this->user_model->login($username, $password);

        //checking userid
        if($user_id){
            //creating session if user_id is present
            $user_data=array(
                'user_id'=>$user_id,
                'username'=>$username,
                'logged_in' => true
            );

            $this->session->set_userdata($user_data);
            //set message               
            $this->session->set_flashdata('user_loggedin', 'Login successful');
            redirect('posts');                  
        }else{
            //creating session if user_id is not present
            $this->session->set_flashdata('login_failed', ' Invalid credentials');
            redirect('users/login');
        }
    }
}
Akshay Singhai

lors de la validation de l'utilisateur, vous devez envoyer un tableau en réponse à l'appel de connexion.

$user_info = $this->user_model->login($username, $password); // User Info should be an Array $user_info = array('user_id' => '123', 'role' => '1'); if exist and $user_info = array(); if not


if(isset($user_info['user_id']) && !empty($user_info['user_id'])) {
$user_data=array(
        'user_id'=>$user_info['user_id'],
        'username'=>$username,
        'logged_in' => true
    );

$this->session->set_userdata($user_data);
$this->session->set_flashdata('user_loggedin', 'Login successful');
if($user_info['role'] == 1){
    redirect('admin/dashboard');
} else {
    redirect('user/dashboard');
}

}

Bien sûr, cela vous aidera.

Articles connexes