Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * Created by PhpStorm.
- * User: tik_squad
- * Date: 2/2/19
- * Time: 10:43 AM
- */
- class Login extends MY_Controller
- {
- public function __construct()
- {
- parent::__construct();
- $this->redirectIfLogin();
- }
- public function index() {
- $this->load->library('form_validation');
- $this->form_validation->set_rules('username', 'Username', 'required');
- $this->form_validation->set_rules('password', 'Password', 'required');
- $status = $this->form_validation->run();
- if (!$status) {
- return $this->load->view('login');
- }
- else {
- $username = $this->input->post('username');
- $password = $this->input->post('password');
- $this->session->set_flashdata('username', $username);
- $this->session->set_flashdata('password', $password);
- $status = $this->_do_login($username, $password);
- if ($status) {
- redirect(base_url($this->dashboard_page));exit();
- }
- redirect(base_url($this->login_page));exit();
- }
- }
- public function _do_login($username, $password) {
- try {
- $user = false;
- $table = false;
- switch (true) {
- case !$user :
- $table = 'relawan';
- $user = $this->db->where('username', $username)
- ->get($table)
- ->row_array();
- if ($user) break;
- case !$user :
- $table = 'saksi';
- $user = $this->db->where('username', $username)
- ->get($table)
- ->row_array();
- if ($user) break;
- case !$user :
- $table = 'admin_caleg';
- $user = $this->db->where('username', $username)
- ->get($table)
- ->row_array();
- if ($user) break;
- case !$user :
- $table = 'admin';
- $user = $this->db->where('username', $username)
- ->get($table)
- ->row_array();
- default :
- break;
- }
- if (!$user) throw new Exception("User tidak diketahui");
- $active = $user['active'];
- if (!$active) throw new Exception("User tidak aktif");
- $password_type = $user['type'];
- $password_db = $user['password'];
- $same_password = false;
- switch ($password_type) {
- case 'PLAIN' :
- $same_password = $password == $password_db;
- break;
- case 'MD5' :
- $same_password = md5($password) == $password_db;
- break;
- case 'BCRYPT' :
- $same_password = password_verify($password, $password_db);
- break;
- default :
- break;
- }
- if (!$same_password) throw new Exception("Password salah");
- $user_id = $user['id'];
- $this->session->set_userdata('level', $table);
- $this->session->set_userdata($table, $user);
- do_login($user_id);
- return $user_id;
- } catch (Exception $e) {
- (new \Plasticbrain\FlashMessages\FlashMessages())->error($e->getMessage());
- }
- }
- }
Add Comment
Please, Sign In to add comment