Как создать проверка подлинности пользователей с уровнями доступа в codeigniter?
у Меня есть эта модель и контроля, который проверяет и подтверждает зарегистрированных пользователей в таблице tb_users базы данных. Нужен скрипт, который проверяет, является ли пользователь 0 или 1 - в столбце nv_nivel. Если пользователь равна 0 он направляет redirect('usuario/home', 'refresh');
равно 1 направляет для redirect('admin/home', 'refresh');
ниже код Model и Controller.
-> Model
class Login_model extends CI_Model {
function ValidaLogin() {
$this->db->where('hl_email', $this->input->post('email'));
$this->db->where('pw_password', md5($this->input->post('senha')));
$query = $this->db->get('tb_user');
if ($query->num_rows == 1) {
return true;
}
}
}
-> controller
public function valida() {
$this->load->model('login_model'); //Carrega o model
$query = $this->login_model->ValidaLogin(); //Chama a função da Model que checa o usuário no BD
if ($query) { //Se o Usuário e senha existir no mesmo registro...
$data = array(
'login' => $this->input->post('email'),
'is_logged_in' => true
);
$this->session->set_userdata($data);
redirect('usuario/home', 'refresh');
} else { // incorreto username ou password
$info['msg'] = "Informações incorretas";
$this->load->view('header_html');
$this->load->view('header_view');
$this->load->view('login/login_view', $info);
$this->load->view('footer_view');
$this->load->view('footer_html');
}
}
2 answers
Первый вариант, который у вас есть-это создание этой "системы" привилегий в руку. Как?
В таблице "пользователи" или " в третьем, связанные, создайте столбец с именем role, функция и определите значение такого.
После того, как, преодолев if
, мы можем различать роли пользователя, и определить что-то для него. Например:
if ($user->role == 1) {
// é administrador
} else {
// não é administrador
}
, Или, если хотите, вы можете использовать библиотеку готова, как Ion Auth.
, к Сожалению, CI не имеет role provider, родной.
Как вы это нуждающихся является ACL - ACCESS CONTROL LIST) , существует готовы, что это очень хорошо, называется - Ion Auth.
, Посетите веб-сайт Ion Auth Docs, посмотрите в документации, загрузите и настройте его в проекте.