Je crée un système de connexion avec 2 rôles un pour 'admin' et un pour 'user'. J'ai essayé de faire une déclaration else if pour la connexion. C'est ce qui se passe pour l'utilisateur, maintenant que tous les utilisateurs vont à l'admin_view en ce moment.Administrateur Codeigniter et rôle utilisateur
Dans ma base de données, la ligne est appelée 'admin', qui est un booléen, donc si la colonne 'admin' est 1 dans la table des utilisateurs. La vue admin_view doit être chargée si la valeur est 0, la vue utilisateur doit être chargée.
Je ne sais vraiment pas quoi faire maintenant.
Comment dois-je séparer les rôles entre l'administrateur et l'utilisateur?
Voici mon contrôleur: users.php
public function login() {
$this->form_validation->set_rules('username', 'Username', 'trim|required|min_length[3]');
$this->form_validation->set_rules('password', 'Password', 'trim|required|min_length[3]');
$this->form_validation->set_rules('confirm_password', 'Confirm Password', 'trim|required|min_length[3]|matches[password]');
if ($this->form_validation->run() == FALSE) {
$data = array(
'errors' => validation_errors()
);
$this->session->set_flashdata($data);
redirect('home');
} else {
$username = $this->input->post('username');
$password = $this->input->post('password');
$user_id = $this->user_model->login_user($username, $password);
if($user_id) {
$user_data = array(
'user_id' => $user_id,
'username' => $username,
'logged_in' => true
'admin' => 1;
);
$this->session->set_userdata($user_data);
$this->session->set_flashdata('login_success', 'You are now logged in');
$data['main_view'] = "admin_view";
$this->load->view('layouts/main', $data);
}
// Here I want the user_view to load op if the user haa a 0 value in
in the column admin.
else if($user_id) {
$user_data = array(
'user_id' => $user_id,
'username' => $username,
'logged_in' => true,
'admin' => 0;
);
$this->session->set_userdata($user_data);
$this->session->set_flashdata('login_success', 'You are now logged in');
$data['main_view'] = "user_view";
$this->load->view('layouts/main', $data);
} else {
$this->session->set_flashdata('login_failed', 'Sorry, you are not logged in');
redirect('home/index');
}
}
}
Voici mon modèle: user_model.php
public function login_user($username, $password) {
$this->db->where('username', $username);
$result = $this->db->get('users');
$db_password = $result->row(2)->password;
$admin = $result->row(7)->admin;
if(password_verify($password, $db_password)) {
return $result->row(0)->id;
} else {
return false;
}
}
}
J'apperciate l'aide.
'ce login_user' Sorties ?? –