113 lines
2.6 KiB
PHP

<?php
namespace App\Controllers;
use App\Controllers\BaseController;
class V2 extends BaseController {
public function index() {
$session = session();
if (! $session->get('isLoggedIn')) {
return redirect()->to('v2/login');
}
// Jika sudah login, arahkan sesuai level
switch ($session->get('level')) {
case 1:
return redirect()->to('v2/admin');
case 2:
return redirect()->to('v2/analyst');
case 3:
return redirect()->to('v2/phlebotomist');
case 4:
return redirect()->to('v2/cs');
default:
return redirect()->to('v2/login');
}
}
public function loginPage() {
return view("v2/login");
}
public function login() {
helper(['form', 'url']);
$session = session();
$db = \Config\Database::connect();
$userid = strtoupper(trim($this->request->getPost('userid')));
$password = $this->request->getPost('password');
// Gunakan raw SQL sesuai kolom di tabel kamu
$query = $db->query("SELECT * FROM gdc_cmod.dbo.USERS WHERE USERID = ?", [$userid]);
$user = $query->getRowArray();
if ($user && !empty($user['PASSWORD']) && password_verify($password, $user['PASSWORD'])) {
// Role untuk url
switch ((int)$user['USERLEVEL']) {
case 1:
$role = 'admin';
break;
case 2:
$role = 'analyst';
break;
case 3:
$role = 'phlebotomist';
break;
case 4:
$role = 'cs';
break;
default:
$role = '';
break;
}
// Simpan session
$session->set([
'isLoggedIn' => true,
'userid' => (string) $user['USERID'],
'userlevel' => (int) $user['USERLEVEL'],
'userrole' => (string) $role,
]);
// Redirect sesuai level dari data didatabase
switch ((int)$user['USERLEVEL']) {
case 1:
return redirect()->to('v2/admin');
case 2:
return redirect()->to('v2/lab');
case 3:
return redirect()->to('v2/phlebotomist');
case 4:
return redirect()->to('v2/cs');
default:
return redirect()->to('v2/login');
}
} else {
$session->setFlashdata('error', 'USERID atau PASSWORD salah.');
return redirect()->back();
}
}
public function logout() {
$session = session();
$session->destroy();
return redirect()->to('v2/login');
}
public function setPassword() {
$input = $this->request->getJSON(true);
$userid = $input['userid'];
$password = $input['password'];
$password = password_hash($password, PASSWORD_DEFAULT);
$db = db_connect();
$sql = "update GDC_CMOD.dbo.USERS set PASSWORD='$password' where USERID='$userid'";
$db->query($sql);
$data = ['status' => 'success', 'message' => 'Password updated successfully', 'data' => "$userid" ];
return $this->response->setJSON($data);
}
}