diff --git a/app/Config/Routes.php b/app/Config/Routes.php
index 68626c7..c9ef2c6 100644
--- a/app/Config/Routes.php
+++ b/app/Config/Routes.php
@@ -20,6 +20,22 @@ $routes->get('label/coll/(:any)', 'Label::coll/$1');
$routes->get('label/dispatch/(:any)/(:any)', 'Label::dispatch/$1/$2');
$routes->get('label/all/(:any)', 'Label::print_all/$1');
+$routes->group('superuser', ['filter' => 'role:0'], function($routes) {
+ $routes->get('', 'Superuser::index');
+ $routes->get('users', 'Superuser::users');
+ $routes->get('api/users', 'Users::index');
+ $routes->post('api/users', 'Users::create');
+ $routes->patch('api/users/(:any)', 'Users::update/$1');
+ $routes->delete('api/users/(:any)', 'Users::delete/$1');
+ $routes->get('api/requests', 'Requests::index');
+ $routes->post('api/requests/validate/(:any)', 'Requests::val/$1');
+ $routes->delete('api/requests/validate/(:any)', 'Requests::unval/$1');
+ $routes->post('api/samples/collect/(:any)', 'Samples::collect/$1');
+ $routes->delete('api/samples/collect/(:any)', 'Samples::uncollect/$1');
+ $routes->delete('api/samples/receive/(:any)', 'Samples::unreceive/$1');
+ $routes->get('api/samples/(:any)', 'Samples::show/$1');
+});
+
$routes->group('admin', ['filter' => 'role:1'], function($routes) {
$routes->get('', 'Admin::index');
$routes->get('users', 'Admin::users');
@@ -45,4 +61,22 @@ $routes->group('lab', ['filter' => 'role:2'], function($routes) {
$routes->get('api/samples/(:any)', 'Samples::show/$1');
});
+$routes->group('phlebo', ['filter' => 'role:3'], function($routes) {
+ $routes->get('', 'Phlebotomist::index');
+ $routes->get('api/requests', 'Requests::index');
+ $routes->post('api/requests/validate/(:any)', 'Requests::val/$1');
+ $routes->delete('api/requests/validate/(:any)', 'Requests::unval/$1');
+ $routes->post('api/samples/collect/(:any)', 'Samples::collect/$1');
+ $routes->get('api/samples/(:any)', 'Samples::show/$1');
+});
+
+$routes->group('cs', ['filter' => 'role:4'], function($routes) {
+ $routes->get('', 'Cs::index');
+ $routes->get('api/requests', 'Requests::index');
+ $routes->post('api/requests/validate/(:any)', 'Requests::val/$1');
+ $routes->delete('api/requests/validate/(:any)', 'Requests::unval/$1');
+ $routes->post('api/samples/collect/(:any)', 'Samples::collect/$1');
+ $routes->get('api/samples/(:any)', 'Samples::show/$1');
+});
+
$routes->get('/dummypage', 'Home::dummyPage');
diff --git a/app/Controllers/Admin.php b/app/Controllers/Admin.php
index 55ea447..1a92b7d 100644
--- a/app/Controllers/Admin.php
+++ b/app/Controllers/Admin.php
@@ -14,8 +14,4 @@ class Admin extends BaseController {
return view('admin/index');
}
- public function users() {
- return view('admin/users');
- }
-
}
diff --git a/app/Controllers/Auth.php b/app/Controllers/Auth.php
index f239070..6503a9f 100644
--- a/app/Controllers/Auth.php
+++ b/app/Controllers/Auth.php
@@ -25,19 +25,19 @@ class Auth extends BaseController {
switch ((int)$user['USERROLEID']) {
case 0:
- $role = 'admin';
+ $role = 'Superuser';
break;
case 1:
- $role = 'analyst';
+ $role = 'Admin';
break;
case 2:
- $role = 'phlebotomist';
+ $role = 'Lab Analyst';
break;
case 3:
- $role = 'cs';
+ $role = 'Phlebotomist';
break;
case 4:
- $role = 'cs';
+ $role = 'Customer Service';
break;
default:
$role = '';
@@ -47,17 +47,19 @@ class Auth extends BaseController {
$session->set([
'isLoggedIn' => true,
'userid' => (string) $user['USERID'],
- 'userlevel' => (int) $user['USERLEVEL'],
+ 'userroleid' => (int) $user['USERROLEID'],
'userrole' => (string) $role,
]);
- switch ((int)$user['USERLEVEL']) {
+ switch ((int)$user['USERROLEID']) {
+ case 0:
+ return redirect()->to('superuser');
case 1:
return redirect()->to('admin');
case 2:
return redirect()->to('lab');
case 3:
- return redirect()->to('analyst');
+ return redirect()->to('phlebo');
case 4:
return redirect()->to('cs');
default:
diff --git a/app/Controllers/Cs.php b/app/Controllers/Cs.php
new file mode 100644
index 0000000..933a5db
--- /dev/null
+++ b/app/Controllers/Cs.php
@@ -0,0 +1,17 @@
+get('isLoggedIn')) {
- switch ($session->get('userlevel')) {
+ switch ($session->get('userroleid')) {
+ case 0: return redirect()->to('/superuser');
case 1: return redirect()->to('/admin');
- case 2: return redirect()->to('/doctor');
- case 3: return redirect()->to('/analyst');
+ case 2: return redirect()->to('/lab');
+ case 3: return redirect()->to('/phlebo');
case 4: return redirect()->to('/cs');
default: return redirect()->to('/login');
}
diff --git a/app/Filters/RoleFilter.php b/app/Filters/RoleFilter.php
index 7bda784..575b6a7 100644
--- a/app/Filters/RoleFilter.php
+++ b/app/Filters/RoleFilter.php
@@ -20,11 +20,11 @@ class RoleFilter implements FilterInterface
// Kalau filter menerima argumen dari routes misal (role:1,2,3), lalu periksa denagn userlevel
if ($arguments) {
- $allowedLevels = array_map('intval', $arguments); // ubah arguments dalam bentuk array string ke array integer
- $userLevel = (int) $session->get('userlevel');
+ $allowedRoles = array_map('intval', $arguments); // ubah arguments dalam bentuk array string ke array integer
+ $userRoleId = (int) $session->get('userroleid');
// Bandingkan dengan userlevel
- if (! in_array($userLevel, $allowedLevels)) {
+ if (! in_array($userRoleId, $allowedRoles)) {
return redirect()->to('/unauthorized'); // misalnya ke halaman error
}
}
diff --git a/app/Views/admin/main.php b/app/Views/admin/main.php
index e3605f0..5e241ee 100644
--- a/app/Views/admin/main.php
+++ b/app/Views/admin/main.php
@@ -34,7 +34,7 @@
Hi, =session('userid'); ?>
-
Administrator
+
= session()->get('userrole') ?>
diff --git a/app/Views/cs/dialog_sample.php b/app/Views/cs/dialog_sample.php
new file mode 100644
index 0000000..2f82f5b
--- /dev/null
+++ b/app/Views/cs/dialog_sample.php
@@ -0,0 +1,88 @@
+
diff --git a/app/Views/cs/dialog_unval.php b/app/Views/cs/dialog_unval.php
new file mode 100644
index 0000000..53abbee
--- /dev/null
+++ b/app/Views/cs/dialog_unval.php
@@ -0,0 +1,10 @@
+
diff --git a/app/Views/cs/dialog_val.php b/app/Views/cs/dialog_val.php
new file mode 100644
index 0000000..64aaeb4
--- /dev/null
+++ b/app/Views/cs/dialog_val.php
@@ -0,0 +1,13 @@
+
diff --git a/app/Views/cs/index.php b/app/Views/cs/index.php
new file mode 100644
index 0000000..ba496df
--- /dev/null
+++ b/app/Views/cs/index.php
@@ -0,0 +1,413 @@
+= $this->extend('cs/main'); ?>
+
+= $this->section('content') ?>
+
+
+
+
+
+
+
+
+
+ Requests Overview
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+ | Order Datetime |
+ Patient Name |
+ No Lab |
+ Reff |
+ Doctor |
+ Tests |
+ Result To |
+ Validation |
+ Status |
+
+
+
+
+
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+
+
+ |
+ |
+
+
+
+
+
+
+
+
+
+ include('admin/dialog_sample'); ?>
+ include('admin/dialog_val'); ?>
+ include('admin/dialog_unval'); ?>
+
+
+= $this->endSection(); ?>
+
+= $this->section('script') ?>
+
+= $this->endSection(); ?>
\ No newline at end of file
diff --git a/app/Views/cs/main.php b/app/Views/cs/main.php
new file mode 100644
index 0000000..f9317a8
--- /dev/null
+++ b/app/Views/cs/main.php
@@ -0,0 +1,62 @@
+
+
+
+
+
+
CMOD
+
+
+
+
+
+
+
+
+
+
+ =$this->renderSection('content');?>
+
+
+
+
+ =$this->renderSection('script');?>
+
+
\ No newline at end of file
diff --git a/app/Views/lab/main.php b/app/Views/lab/main.php
index bdfde16..857981c 100644
--- a/app/Views/lab/main.php
+++ b/app/Views/lab/main.php
@@ -28,13 +28,13 @@