load->library('form_validation');
$this->load->model('Auth_model', 'auth');
}
public function index()
{
//cek jika sudah ada login session pada user
if ($this->session->userdata('email')) {
redirect('user');
}
//form validasi
$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email');
$this->form_validation->set_rules('password', 'Password', 'trim|required');
//jika validasi gagal kembalikn ke halaman login
if ($this->form_validation->run() == false) {
$data['judul'] = 'Sistem Pakar Metode Naive Bayes';
$this->load->view('auth/login', $data);
//jika validasi sukses menuju ke method _login
} else {
$this->_login();
}
}
private function _login()
{
//mendapatkan inputan user dari form login
$email = $this->input->post('email');
$password = $this->input->post('password');
//query ke tbl user utk mendapatkn semua data hanya satu user
$auth = $this->auth->getUser($email);
// cek jika user dgn email yg diinputkn ada apa tdk di tbl user
if ($auth) {
// cek jika usernya aktif atau sudah verifikasi apa belum
if ($auth['is_active'] == 1) {
// cek password yang di inputkan user dgn tbl user
if (password_verify($password, $auth['password'])) {
$data = [
'email' => $auth['email'],
'role_id' => $auth['role_id']
];
//membuat session
$this->session->set_userdata($data);
//login berhasil alihkan ke halaman masing-masing rolenya
if ($auth['role_id'] == 1) {
redirect('admin');
} else {
redirect('home');
}
//password salah
} else {
$this->session->set_flashdata('message', '
Password salah!
');
redirect('auth');
}
//Email belum diverifikasi
} else {
$this->session->set_flashdata('message', 'Email belum diverifiaksi!
');
redirect('auth');
}
//email tidak terdaftar
} else {
$this->session->set_flashdata('message', 'Email belum terdaftar!
');
redirect('auth');
}
}
public function registrasi()
{
if ($this->session->userdata('email')) {
redirect('user');
}
// Form validasi
$this->form_validation->set_rules('name', 'Nama', 'required|trim');
$this->form_validation->set_rules('email', 'Email', 'required|trim|valid_email|is_unique[user.email]', [
'is_unique' => 'Email ini sudah terdaftar!'
]);
$this->form_validation->set_rules('password1', 'Password', 'required|trim|min_length[3]|matches[password2]', [
'matches' => 'Password tidak cocok!',
'min_length' => 'Password terlalu pendek!'
]);
$this->form_validation->set_rules('password2', 'Konfirmasi Password', 'required|trim|matches[password1]');
$this->form_validation->set_rules('berat_badan', 'Berat Badan', 'required|numeric', [
'numeric' => 'Harus berupa angka!'
]);
$this->form_validation->set_rules('tinggi_badan', 'Tinggi Badan', 'required|numeric', [
'numeric' => 'Harus berupa angka!'
]);
$this->form_validation->set_rules('lingkar_kepala', 'Lingkar Kepala', 'required|numeric', [
'numeric' => 'Harus berupa angka!'
]);
$this->form_validation->set_rules('lingkar_lengan_atas', 'Lingkar Lengan Atas', 'required|numeric', [
'numeric' => 'Harus berupa angka!'
]);
if ($this->form_validation->run() == false) {
$data['judul'] = 'Sistem Pakar Metode Naive Bayes';
$this->load->view('auth/registrasi', $data);
} else {
$this->load->model('Auth_model');
if ($this->Auth_model->daftar()) {
$this->session->set_flashdata('message', 'Selamat! Kamu sudah terdaftar. Silakan login.
');
redirect('auth');
} else {
$this->session->set_flashdata('message', 'Email sudah digunakan, coba gunakan email lain.
');
redirect('auth/registrasi');
}
}
}
public function logout()
{
//hapus session email
$this->session->unset_userdata('email');
//hapus session role_id
$this->session->unset_userdata('role_id');
//pesan flashdata telah berhasil logout
$this->session->set_flashdata('message', 'Kamu berhasil logout!
');
redirect('home');
}
public function block()
{
$data['judul'] = 'Akses Tidak Diizinkan!';
$data['user'] = $this->db->get_where('user', ['email' => $this->session->userdata('email')])->row_array();
$this->load->view('templates/header', $data);
$this->load->view('auth/blocked', $data);
}
}