Guest User

Untitled

a guest
Feb 4th, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.44 KB | None | 0 0
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: tik_squad
  5. * Date: 2/2/19
  6. * Time: 10:43 AM
  7. */
  8.  
  9. class Login extends MY_Controller
  10. {
  11. public function __construct()
  12. {
  13. parent::__construct();
  14. $this->redirectIfLogin();
  15. }
  16.  
  17. public function index() {
  18. $this->load->library('form_validation');
  19. $this->form_validation->set_rules('username', 'Username', 'required');
  20. $this->form_validation->set_rules('password', 'Password', 'required');
  21. $status = $this->form_validation->run();
  22. if (!$status) {
  23. return $this->load->view('login');
  24. }
  25. else {
  26. $username = $this->input->post('username');
  27. $password = $this->input->post('password');
  28. $this->session->set_flashdata('username', $username);
  29. $this->session->set_flashdata('password', $password);
  30. $status = $this->_do_login($username, $password);
  31. if ($status) {
  32. redirect(base_url($this->dashboard_page));exit();
  33. }
  34. redirect(base_url($this->login_page));exit();
  35. }
  36. }
  37. public function _do_login($username, $password) {
  38. try {
  39. $user = false;
  40. $table = false;
  41. switch (true) {
  42. case !$user :
  43. $table = 'relawan';
  44. $user = $this->db->where('username', $username)
  45. ->get($table)
  46. ->row_array();
  47. if ($user) break;
  48. case !$user :
  49. $table = 'saksi';
  50. $user = $this->db->where('username', $username)
  51. ->get($table)
  52. ->row_array();
  53. if ($user) break;
  54. case !$user :
  55. $table = 'admin_caleg';
  56. $user = $this->db->where('username', $username)
  57. ->get($table)
  58. ->row_array();
  59. if ($user) break;
  60. case !$user :
  61. $table = 'admin';
  62. $user = $this->db->where('username', $username)
  63. ->get($table)
  64. ->row_array();
  65. default :
  66. break;
  67.  
  68. }
  69. if (!$user) throw new Exception("User tidak diketahui");
  70. $active = $user['active'];
  71. if (!$active) throw new Exception("User tidak aktif");
  72.  
  73. $password_type = $user['type'];
  74. $password_db = $user['password'];
  75.  
  76. $same_password = false;
  77. switch ($password_type) {
  78. case 'PLAIN' :
  79. $same_password = $password == $password_db;
  80. break;
  81. case 'MD5' :
  82. $same_password = md5($password) == $password_db;
  83. break;
  84. case 'BCRYPT' :
  85. $same_password = password_verify($password, $password_db);
  86. break;
  87. default :
  88. break;
  89. }
  90. if (!$same_password) throw new Exception("Password salah");
  91.  
  92. $user_id = $user['id'];
  93.  
  94. $this->session->set_userdata('level', $table);
  95. $this->session->set_userdata($table, $user);
  96. do_login($user_id);
  97.  
  98. return $user_id;
  99.  
  100. } catch (Exception $e) {
  101. (new \Plasticbrain\FlashMessages\FlashMessages())->error($e->getMessage());
  102. }
  103.  
  104.  
  105. }
  106. }
Add Comment
Please, Sign In to add comment