all fix (next dict_tests)
This commit is contained in:
parent
0da54e8376
commit
7a4491c037
@ -17,15 +17,10 @@ $routes->get('/tubes/unreceive/(:any)/(:any)', 'Tubes::unreceive/$1/$2');
|
||||
$routes->get('/tubes/unreceiveAll/(:any)', 'Tubes::unreceiveAll/$1');
|
||||
$routes->post('/tubes/comment/(:any)/(:any)', 'Tubes::comment/$1/$2');
|
||||
|
||||
// Userroles
|
||||
$routes->get('/userroles/', 'Userroles::index');
|
||||
$routes->match(['get','post'],'/userroles/create', 'Userroles::edit/0');
|
||||
$routes->match(['get','post'],'/userroles/edit/(:any)', 'Userroles::edit/$1');
|
||||
|
||||
// Users
|
||||
$routes->get('/users/', 'Users::index');
|
||||
$routes->match(['get','post'], '/users/editRole/(:any)', 'Users::editRole/$1');
|
||||
$routes->match(['get','post'], '/users/editPass/(:any)', 'Users::editPass/$1');
|
||||
// Pages
|
||||
$routes->get('/userroles/', 'Pages::userroles_index');
|
||||
$routes->get('/users/', 'Pages::users_index');
|
||||
$routes->get('/changePass/', 'Pages::changePass');
|
||||
|
||||
// DICT_TESTS
|
||||
$routes->get('/dict_tests/', 'Dict_tests::index');
|
||||
@ -36,7 +31,13 @@ $routes->get('/auth/loginTD', 'Auth::loginTD');
|
||||
$routes->match(['get','post'], '/auth/login', 'Auth::login');
|
||||
$routes->match(['get','post'], '/auth/setpass/(:any)', 'Auth::setpass/$1');
|
||||
|
||||
// API
|
||||
$routes->get('/api/userroles/index', 'Api::userroles_index');
|
||||
$routes->get('/api/userroles/detail/(:any)', 'Api::userroles_detail/$1');
|
||||
$routes->post('/api/userroles/save/(:any)', 'Api::userroles_save/$1');
|
||||
// API - Userroles
|
||||
$routes->get('/api/userroles/index', 'Userroles::index');
|
||||
$routes->get('/api/userroles/detail/(:any)', 'Userroles::detail/$1');
|
||||
$routes->post('/api/userroles/save/(:any)', 'Userroles::save/$1');
|
||||
|
||||
// API - Users
|
||||
$routes->get('/api/users/index', 'Users::index');
|
||||
$routes->get('/api/users/detail/(:any)', 'Users::detail/$1');
|
||||
$routes->post('/api/users/savePass/(:any)', 'Users::savePass/$1');
|
||||
$routes->post('/api/users/saveRole/(:any)', 'Users::saveRole/$1');
|
||||
|
||||
@ -1,59 +0,0 @@
|
||||
<?php
|
||||
namespace App\Controllers;
|
||||
|
||||
use CodeIgniter\RESTful\ResourceController;
|
||||
|
||||
class Api extends ResourceController {
|
||||
protected $format = 'json';
|
||||
|
||||
public function userroles_index() {
|
||||
$db = \Config\Database::connect();
|
||||
$sql = "select * from cmod.dbo.CM_USERROLES";
|
||||
$query = $db->query($sql);
|
||||
$results = $query->getResultArray();
|
||||
$data['userroles'] = $results;
|
||||
|
||||
return $this->respond($data, 200);
|
||||
}
|
||||
|
||||
public function userroles_detail($userroleid) {
|
||||
$db = \Config\Database::connect();
|
||||
$sql = "select * from cmod.dbo.CM_USERROLES where USERROLEID='$userroleid'";
|
||||
$query = $db->query($sql);
|
||||
$results = $query->getResultArray();
|
||||
$data = $results[0];
|
||||
return $this->respond($data, 200);
|
||||
}
|
||||
|
||||
public function userroles_edit($userroleid) {
|
||||
$db = \Config\Database::connect();
|
||||
$sql = "select * from cmod.dbo.CM_USERROLES where USERROLEID='$userroleid'";
|
||||
$query = $db->query($sql);
|
||||
$results = $query->getResultArray();
|
||||
$data['userroles'] = $results;
|
||||
|
||||
return $this->respond($data, 200);
|
||||
}
|
||||
|
||||
public function userroles_save($userroleid) {
|
||||
$userrolecode = $this->request->getPost('userrolecode');
|
||||
$userrolename = $this->request->getPost('userrolename');
|
||||
|
||||
$db = \Config\Database::connect();
|
||||
if($userroleid == 0) { // new
|
||||
$sql = "INSERT INTO cmod.dbo.CM_USERROLES(USERROLECODE, USERROLENAME, CREATEDATE) VALUES ('$userrolecode', '$userrolename', GETDATE())";
|
||||
} else { //update
|
||||
$sql = "UPDATE cmod.dbo.CM_USERROLES set USERROLENAME='$userrolename', USERROLECODE='$userrolecode' where USERROLEID='$userroleid'";
|
||||
}
|
||||
|
||||
if( $db->query($sql) ) {
|
||||
return $this->respond(['message' => 'Save Success'],201);
|
||||
} else {
|
||||
$response = [
|
||||
'errors' => $db->errors(),
|
||||
'message' => 'Invalid Inputs'
|
||||
];
|
||||
return $this->fail($response , 409);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -67,23 +67,18 @@ class Auth extends BaseController {
|
||||
return redirect()->to('/auth/login');;
|
||||
}
|
||||
|
||||
public function setPass($userid) {
|
||||
public function setpass($userid) {
|
||||
if ($this->request->getMethod() === 'POST') {
|
||||
$password1 = $this->request->getVar('password1');
|
||||
$password2 = $this->request->getVar('password2');
|
||||
$data['password1'] = $password1;
|
||||
$data['password2'] = $password2;
|
||||
if($password1 == $password2) {
|
||||
$password = password_hash($password1,PASSWORD_DEFAULT);
|
||||
$db = \Config\Database::connect();
|
||||
$sql = "update cmod.dbo.CM_USERS set PASSWORD='$password' where USERID='$userid'";
|
||||
$db->query($sql);
|
||||
return redirect()->to("/auth/login");
|
||||
} else {
|
||||
return redirect()->to("/auth/setpass/$userid")->with('flash_error', 'password is not the same.');
|
||||
}
|
||||
$password = $this->request->getPost('password');
|
||||
$password = password_hash($password,PASSWORD_DEFAULT);
|
||||
$db = \Config\Database::connect();
|
||||
$sql = "update cmod.dbo.CM_USERS set PASSWORD='$password' where USERID='$userid'";
|
||||
$db->query($sql);
|
||||
return redirect()->to("/auth/login");
|
||||
} else {
|
||||
$data['userid'] = strtoupper($userid);
|
||||
return view('auth_setpass', $data);
|
||||
}
|
||||
return view('auth_setpass');
|
||||
}
|
||||
|
||||
public function loginTD() {
|
||||
|
||||
38
app/Controllers/Pages.php
Normal file
38
app/Controllers/Pages.php
Normal file
@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers;
|
||||
|
||||
class Pages extends BaseController {
|
||||
|
||||
public function userroles_index(): string {
|
||||
return view('userroles_index');
|
||||
}
|
||||
|
||||
public function users_index(): string {
|
||||
$db = \Config\Database::connect();
|
||||
$sql = "select * from cmod.dbo.CM_USERROLES";
|
||||
$query = $db->query($sql);
|
||||
$results = $query->getResultArray();
|
||||
$data['userroles'] = $results;
|
||||
return view('users_index', $data);
|
||||
}
|
||||
|
||||
public function changePass() {
|
||||
if ($this->request->getMethod() === 'POST') {
|
||||
$password1 = $this->request->getVar('password1');
|
||||
$password2 = $this->request->getVar('password2');
|
||||
$data['password1'] = $password1;
|
||||
$data['password2'] = $password2;
|
||||
if($password1 == $password2) {
|
||||
$password = password_hash($password1,PASSWORD_DEFAULT);
|
||||
$db = \Config\Database::connect();
|
||||
$sql = "update cmod.dbo.CM_USERS set PASSWORD='$password' where USERID='$userid'";
|
||||
$db->query($sql);
|
||||
return redirect()->to("/");
|
||||
} else {
|
||||
return redirect()->to("/auth/setpass/$userid")->with('flash_error', 'password is not the same.');
|
||||
}
|
||||
}
|
||||
return view('changePass');
|
||||
}
|
||||
}
|
||||
@ -1,11 +1,49 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers;
|
||||
|
||||
class Userroles extends BaseController {
|
||||
|
||||
public function index(): string {
|
||||
return view('userroles_index');
|
||||
}
|
||||
use CodeIgniter\RESTful\ResourceController;
|
||||
|
||||
class Userroles extends ResourceController {
|
||||
protected $format = 'json';
|
||||
|
||||
public function index() {
|
||||
$db = \Config\Database::connect();
|
||||
$sql = "select * from cmod.dbo.CM_USERROLES";
|
||||
$query = $db->query($sql);
|
||||
$results = $query->getResultArray();
|
||||
$data['userroles'] = $results;
|
||||
|
||||
}
|
||||
return $this->respond($data, 200);
|
||||
}
|
||||
|
||||
public function detail($userroleid) {
|
||||
$db = \Config\Database::connect();
|
||||
$sql = "select * from cmod.dbo.CM_USERROLES where USERROLEID='$userroleid'";
|
||||
$query = $db->query($sql);
|
||||
$results = $query->getResultArray();
|
||||
$data = $results[0];
|
||||
return $this->respond($data, 200);
|
||||
}
|
||||
|
||||
public function save($userroleid) {
|
||||
$userrolecode = $this->request->getPost('userrolecode');
|
||||
$userrolename = $this->request->getPost('userrolename');
|
||||
|
||||
$db = \Config\Database::connect();
|
||||
if($userroleid == 0) { // new
|
||||
$sql = "INSERT INTO cmod.dbo.CM_USERROLES(USERROLECODE, USERROLENAME, CREATEDATE) VALUES ('$userrolecode', '$userrolename', GETDATE())";
|
||||
} else { //update
|
||||
$sql = "UPDATE cmod.dbo.CM_USERROLES set USERROLENAME='$userrolename', USERROLECODE='$userrolecode' where USERROLEID='$userroleid'";
|
||||
}
|
||||
|
||||
if( $db->query($sql) ) {
|
||||
return $this->respond(['message' => 'Save Success'],201);
|
||||
} else {
|
||||
$response = [
|
||||
'errors' => $db->errors(),
|
||||
'message' => 'Invalid Inputs'
|
||||
];
|
||||
return $this->fail($response , 409);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,61 +1,59 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers;
|
||||
|
||||
class Users extends BaseController {
|
||||
use CodeIgniter\RESTful\ResourceController;
|
||||
|
||||
class Users extends ResourceController {
|
||||
protected $format = 'json';
|
||||
|
||||
public function index(): string {
|
||||
public function index() {
|
||||
$db = \Config\Database::connect();
|
||||
$sql = "select u.USERID, u.USERNAME, u1.USERROLEID from cmod.dbo.CM_USERS u1
|
||||
$sql = "select u.USERID, u.USERNAME, u1.USERROLEID, ur.USERROLENAME from cmod.dbo.CM_USERS u1
|
||||
full join USERS u on u.USERID=u1.USERID
|
||||
left join cmod.dbo.CM_USERROLES ur on ur.USERROLEID=u1.USERROLEID
|
||||
where ( u.LOCKEDACCOUNT is null or u.LOCKEDACCOUNT=0 )";
|
||||
$query = $db->query($sql);
|
||||
$results = $query->getResultArray();
|
||||
|
||||
$data['users'] = $results;
|
||||
return view('users_index', $data);
|
||||
}
|
||||
|
||||
public function editRole($userid) {
|
||||
if ($this->request->getMethod() == 'POST') {
|
||||
$request = service('request');
|
||||
$jsonData = $request->getJSON();
|
||||
$userrolecode = $jsonData->userrolecode;
|
||||
$db = \Config\Database::connect();
|
||||
$sql = "if (not exists (select * from cmod.dbo.CM_USERS where USERID='$userid')) BEGIN
|
||||
INSERT INTO cmod.dbo.CM_USERS(USERID, USERROLECODE, CREATEDATE) VALUES
|
||||
('$userid','$userrolecode', GETDATE())
|
||||
END ELSE BEGIN
|
||||
UPDATE cmod.dbo.CM_USERS set USERROLECODE='$userrolecode' where USERID='$userid'
|
||||
END";
|
||||
$query = $db->query($sql);
|
||||
} else {
|
||||
$db = \Config\Database::connect();
|
||||
$sql = "select u.USERID, u.USERNAME, u1.USERROLECODE from cmod.dbo.CM_USERS u1
|
||||
full join USERS u on u.USERID=u1.USERID
|
||||
where u.USERID='$userid'";
|
||||
$query = $db->query($sql);
|
||||
$results = $query->getResultArray();
|
||||
|
||||
$data['users'] = $results;
|
||||
$data['userroles'] = $this->userrole;
|
||||
return view('users_editRole', $data);
|
||||
}
|
||||
return $this->respond($data,200);
|
||||
}
|
||||
|
||||
public function comment($access, $sample) {
|
||||
$userid = session()->userid;
|
||||
$request = service('request');
|
||||
$jsonData = $request->getJSON();
|
||||
public function savePass() {
|
||||
$db = \Config\Database::connect();
|
||||
$comment = $jsonData->comment;
|
||||
$sql = "if (not exists (select * from cmod.dbo.CM_TUBES where ACCESSNUMBER='$access' AND SAMPLETYPE='$sample')) BEGIN
|
||||
INSERT INTO cmod.dbo.CM_TUBES(ACCESSNUMBER, SAMPLETYPE, COLL_USERID, TUBECOMMENT, CREATEDATE) VALUES
|
||||
('$access','$sample', '$userid', '$comment', GETDATE())
|
||||
END ELSE BEGIN
|
||||
UPDATE cmod.dbo.CM_TUBES set TUBECOMMENT='$comment' where ACCESSNUMBER='$access' and SAMPLETYPE='$sample'
|
||||
END";
|
||||
echo "$sql";
|
||||
$query = $db->query($sql);
|
||||
}
|
||||
}
|
||||
$userid = $this->request->getPost('userid');
|
||||
$pass = $this->request->getPost('pass');
|
||||
$password = password_hash($pass,PASSWORD_DEFAULT);
|
||||
$sql = "update cmod.dbo.CM_USERS set PASSWORD='$password' where USERID='$userid'";
|
||||
if( $db->query($sql) ) {
|
||||
return $this->respond(['message' => 'Save Success'],201);
|
||||
} else {
|
||||
$response = [
|
||||
'errors' => $db->errors(),
|
||||
'message' => 'Invalids'
|
||||
];
|
||||
return $this->fail($response , 409);
|
||||
}
|
||||
}
|
||||
|
||||
public function saveRole() {
|
||||
$db = \Config\Database::connect();
|
||||
$userid = $this->request->getPost('userid');
|
||||
$userroleid = $this->request->getPost('userroleid');
|
||||
$sql = "if (not exists (select * from cmod.dbo.CM_USERS where USERID='$userid')) BEGIN
|
||||
INSERT INTO cmod.dbo.CM_USERS(USERID, USERROLEID, CREATEDATE) VALUES
|
||||
('$userid','$userroleid', GETDATE())
|
||||
END ELSE BEGIN
|
||||
UPDATE cmod.dbo.CM_USERS set USERROLEID='$userroleid' where USERID='$userid'
|
||||
END";
|
||||
if( $db->query($sql) ) {
|
||||
return $this->respond(['message' => 'Save Success'],201);
|
||||
} else {
|
||||
$response = [
|
||||
'errors' => $db->errors(),
|
||||
'message' => 'Invalids'
|
||||
];
|
||||
return $this->fail($response , 409);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -21,51 +21,38 @@
|
||||
<body class='bg-login'>
|
||||
<section class="vh-100">
|
||||
<div class="container h-100">
|
||||
|
||||
<div class="row d-flex justify-content-center align-items-center h-100">
|
||||
<div class="col col-xl-10 login-form">
|
||||
<div class="card shadoww" style="border-radius: 1rem;" >
|
||||
<div class="row g-0">
|
||||
|
||||
<div class="col d-flex align-items-center text-center">
|
||||
<div class="card-body pb-md-5 px-md-5 text-black">
|
||||
|
||||
<div class="d-flex align-items-center m-0" bg='dark'>
|
||||
<img src="<?=base_url();?>assets/img/login-logo.png" alt="" id="icon-login" class="mx-auto m-0">
|
||||
<!-- <h1 class="mx-auto">Logo</h1> -->
|
||||
</div>
|
||||
|
||||
<form class="m-0" method='POST'>
|
||||
|
||||
<!-- <hr class="w-75 mx-auto"> -->
|
||||
|
||||
<h5 class="fw-normal mt-4 mb-2 pb-2" style="letter-spacing: 1px;">Sign into your account</h5>
|
||||
|
||||
<div class="form-outline mb-4">
|
||||
<input type="text" id="userid" name='userid' value='<?=$userid?>' class="form-control form-control-lg" oninput="this.value = this.value.toUpperCase();" />
|
||||
<label class="form-label" for="userid">UserID</label>
|
||||
</div>
|
||||
|
||||
<div class="form-outline mb-4">
|
||||
<input type="password" id="password" name='password' value='<?=$password;?>' class="form-control form-control-lg" />
|
||||
<label class="form-label" for="password">Password</label>
|
||||
</div>
|
||||
|
||||
<div class="pt-1 mb-4">
|
||||
<button type='submit' class="btn bg-primary-luxury btn-lg btn-block" type="button">
|
||||
<span class="font-primary-luxury"> Login </span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<script type="text/javascript" src="<?=base_url();?>assets/js/mdb.min.js"></script>
|
||||
@ -75,5 +62,4 @@
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
61
app/Views/auth_setpass.php
Normal file
61
app/Views/auth_setpass.php
Normal file
@ -0,0 +1,61 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
|
||||
<meta http-equiv="x-ua-compatible" content="ie=edge" />
|
||||
<title>CMOD - Login</title>
|
||||
<link rel="icon" href="favicon.ico" type="image/x-icon" />
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700;900&display=swap" />
|
||||
<link rel="stylesheet" href="<?=base_url();?>assets/css/bootstrap-login-form.min.css" />
|
||||
<style>
|
||||
.bg-primary-luxury{ background-color: #1C2B19; }
|
||||
.font-primary-luxury{ color: #E9E3C9;}
|
||||
#icon-login { max-width: 80%; height: auto; }
|
||||
.shadoww { box-shadow: 0 4px 8px #1c2b193f; /* Bayangan merah */ }
|
||||
.login-form {width:490px;}
|
||||
.bg-login { background-color:#1c1c1c; }
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body class='bg-login'>
|
||||
<section class="vh-100">
|
||||
<div class="container h-100">
|
||||
<div class="row d-flex justify-content-center align-items-center h-100">
|
||||
<div class="col col-xl-10 login-form">
|
||||
<div class="card shadoww" style="border-radius: 1rem;" >
|
||||
<div class="row g-0">
|
||||
<div class="col d-flex align-items-center text-center">
|
||||
<div class="card-body pb-md-5 px-md-5 text-black">
|
||||
<form class="m-0" method='POST'>
|
||||
<h5 class="fw-normal mt-4 mb-2 pb-2" style="letter-spacing: 1px;">Setting Password</h5>
|
||||
<div class="form-outline mb-4">
|
||||
<input type="text" id="userid" name='userid' value='<?=$userid?>' class="form-control form-control-lg" oninput="this.value = this.value.toUpperCase();" disabled />
|
||||
<label class="form-label" for="userid">UserID</label>
|
||||
</div>
|
||||
<div class="form-outline mb-4">
|
||||
<input type="password" id="password" name='password' class="form-control form-control-lg" />
|
||||
<label class="form-label" for="password">Password</label>
|
||||
</div>
|
||||
<div class="pt-1 mb-4">
|
||||
<button type='submit' class="btn bg-primary-luxury btn-lg btn-block" type="button">
|
||||
<span class="font-primary-luxury"> Set </span>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<script type="text/javascript" src="<?=base_url();?>assets/js/mdb.min.js"></script>
|
||||
<script>
|
||||
window.onload = function() {
|
||||
document.getElementById("userid").focus();
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
63
app/Views/changePass.php
Normal file
63
app/Views/changePass.php
Normal file
@ -0,0 +1,63 @@
|
||||
<?= $this->extend('layouts/main.php') ?>
|
||||
|
||||
<?= $this->section('content') ?>
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class='card-title'> Password Editor </div>
|
||||
<div id='alertPass'></div>
|
||||
<table class="table table-sm table-borderless">
|
||||
<tr class="align-middle"> <th>Password</th> <th>:</th> <td><input class='form-control' type='password' id='pass1'/></td> </tr>
|
||||
<tr class="align-middle"> <th>Conf. Password</th> <th>:</th> <td><input class='form-control' type='password' id='pass2'/></td> </tr>
|
||||
</table>
|
||||
<button class='btn btn-sm btn-primary' onclick='savePass()'>Save</button>
|
||||
<button class='btn btn-sm btn-secondary' data-bs-dismiss="modal">Cancel</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?= $this->endSection() ?>
|
||||
|
||||
<?= $this->section('script') ?>
|
||||
<script>
|
||||
window.onload = function() {
|
||||
document.getElementById("pass1").focus();
|
||||
}
|
||||
|
||||
function savePass() {
|
||||
var userid = '<?=$_SESSION['userid'];?>';
|
||||
var pass1 = $("#pass1").val();
|
||||
var pass2 = $("#pass2").val();
|
||||
if(pass1 == pass2) {
|
||||
let url = '<?=base_url('');?>api/users/savePass/'+userid ;
|
||||
let data = { userid: userid, pass : pass1 };
|
||||
$.ajax({
|
||||
url: url,
|
||||
method: "POST",
|
||||
data: data,
|
||||
success: function(response) {
|
||||
$("#pass1").val('');
|
||||
$("#pass2").val('');
|
||||
$('#alertPass').html(
|
||||
"<div class='alert alert-success alert-dismissible fade show' role='alert'> "+
|
||||
"Password updated!" +
|
||||
"<button type='button' class='btn-close' data-bs-dismiss='alert' aria-label='Close'></button>"+
|
||||
"</div>"
|
||||
);
|
||||
},
|
||||
error: function(response) {
|
||||
console.log(response.responseJSON)
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$('#alertPass').html(
|
||||
"<div class='alert alert-danger alert-dismissible fade show' role='alert'> "+
|
||||
"Password is not the same!" +
|
||||
"<button type='button' class='btn-close' data-bs-dismiss='alert' aria-label='Close'></button>"+
|
||||
"</div>"
|
||||
);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<?= $this->endSection() ?>
|
||||
@ -2,8 +2,11 @@
|
||||
<nav class="sb-sidenav accordion sb-sidenav-light" id="sidenavAccordion">
|
||||
<div class="sb-sidenav-menu">
|
||||
<div class="nav">
|
||||
<div class="sb-sidenav-menu-heading">Main</div>
|
||||
<a class="nav-link" href="<?=base_url();?>"><div class="sb-nav-link-icon"><i class="bi bi-speedometer"></i></div>Dashboard</a>
|
||||
<a class="nav-link" href="<?=base_url();?>changePass/"><div class="sb-nav-link-icon"><i class="bi bi-key"></i></div>Change Password</a>
|
||||
<div class="sb-sidenav-menu-heading">Administration</div>
|
||||
<a class="nav-link" href="#"> <div class="sb-nav-link-icon"><i class="fas bi-journal-album"></i></div> Dictionary Test </a>
|
||||
<a class="nav-link" href="#"> <div class="sb-nav-link-icon"><i class="bi bi-journal-album"></i></div> Dictionary Test </a>
|
||||
<a class="nav-link" href="<?=base_url();?>users/"> <div class="sb-nav-link-icon"><i class="bi bi-person-circle"></i></div> Users </a>
|
||||
<a class="nav-link" href="<?=base_url();?>userroles/"> <div class="sb-nav-link-icon"><i class="bi bi-person-lock"></i></div> User Roles </a>
|
||||
</div>
|
||||
|
||||
@ -1,39 +0,0 @@
|
||||
<?php
|
||||
if(!isset($userrolename)) { $userrolename = ''; }
|
||||
?>
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5" id="exampleModalToggleLabel">Edit UserRoles</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" ></button>
|
||||
</div>
|
||||
<div class="modal-body" style='background-color:#F4F6FF'>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-borderless">
|
||||
<tr class="align-middle"> <th>User Role Code</th> <th>:</th>
|
||||
<?php
|
||||
if($userrolecode==0) { echo "<td><input class='form-control' type='text' id='userrolecode' oninput='this.value = this.value.toUpperCase();'/></td> "; }
|
||||
else { echo "<td><input class='form-control' type='text' value='$userrolecode' disabled/></td> <input type='hidden' id='userrolecode' value='$userrolecode'>"; }
|
||||
?>
|
||||
</tr>
|
||||
<tr class="align-middle"> <th>User Role Name</th> <th>:</th> <td><input class='form-control' type='text' id='userrolename' value='<?=$userrolename;?>' /></td> </tr>
|
||||
</table>
|
||||
<button class='btn btn-sm btn-primary' onclick='save("<?=$userrolecode;?>")'>Save</button>
|
||||
<button class='btn btn-sm btn-secondary' data-bs-dismiss="modal">Cancel</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
function save(userid) {
|
||||
const userrolecode = $("#userrolecode").val();
|
||||
const userrolename = $("#userrolename").val();
|
||||
const url = '<?=base_url();?>userroles/edit/<?=$userrolecode?>';
|
||||
console.log(url+' '+userrolecode+' '+userrolename);
|
||||
fetch(url, {
|
||||
method: "POST",
|
||||
body: JSON.stringify({ userrolecode : userrolecode, userrolename : userrolename }),
|
||||
headers: { "Content-type": "application/json; charset=UTF-8" }
|
||||
})
|
||||
.catch(error => { console.error('Error:',error); });
|
||||
$('#modal').modal('toggle');
|
||||
}
|
||||
</script>
|
||||
@ -1,50 +0,0 @@
|
||||
<?php
|
||||
$userid = $users[0]['USERID'];
|
||||
$username = $users[0]['USERNAME'];
|
||||
$userroleid = $users[0]['USERROLEID'];
|
||||
?>
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5" id="exampleModalToggleLabel">Edit Users Role</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" ></button>
|
||||
</div>
|
||||
<div class="modal-body" style='background-color:#F4F6FF'>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-borderless">
|
||||
<tr> <th>Userid</th> <th>:</th> <td><?=$userid;?></td> </tr>
|
||||
<tr> <th>Username</th> <th>:</th> <td><?=$username;?></td> </tr>
|
||||
<tr class="align-middle"> <th>User Role</th> <th>:</th>
|
||||
<td>
|
||||
<select class='form-control' id='userroleid'>
|
||||
<?php
|
||||
foreach($userroles as $quserroleid => $quserrole) {
|
||||
if($userroleid == $quserroleid) { echo "<option value='$quserroleid' selected>$quserrole</option>"; }
|
||||
else { echo "<option value='$quserroleid'>$quserrole</option>"; }
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<button class='btn btn-sm btn-primary' onclick='save("<?=$userid;?>")'>Save</button>
|
||||
<button class='btn btn-sm btn-secondary' data-bs-dismiss="modal">Cancel</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
function save(userid) {
|
||||
// Assuming your select element has an ID of "mySelect"
|
||||
const userroleid = $("#userroleid").val();
|
||||
const userroletext = $("#userroleid").find(":selected").text();
|
||||
const url = '<?=base_url();?>users/editRole/'+userid;
|
||||
console.log(url+' '+userroleid+' '+userroletext);
|
||||
fetch(url, {
|
||||
method: "POST",
|
||||
body: JSON.stringify({ userroleid : userroleid }),
|
||||
headers: { "Content-type": "application/json; charset=UTF-8" }
|
||||
})
|
||||
.catch(error => { console.error('Error:',error); });
|
||||
$('#modal').modal('toggle');
|
||||
$('#userrole'+userid).html(userroletext);
|
||||
}
|
||||
</script>
|
||||
@ -4,45 +4,74 @@
|
||||
<div class="card border-0">
|
||||
<div class="body-card">
|
||||
<div class="table-responsive">
|
||||
<table id="table_dashboard" class="table">
|
||||
<table id="myTable" class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>Userid</th>
|
||||
<th>Name</th>
|
||||
<th>Role</th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
$i = 1;
|
||||
foreach ($users as $data) {
|
||||
$userid = $data['USERID'];
|
||||
$username = $data['USERNAME'];
|
||||
$userrolecode = $data['USERROLEID'];
|
||||
?>
|
||||
<tr class="table-row">
|
||||
<td><?=$i;?></td>
|
||||
<td><?=$userid;?></td>
|
||||
<td><?=$username;?></td>
|
||||
<td>
|
||||
<button class='badge text-bg-dark editRole' data-bs-toggle="modal" data-bs-target="#modal" data-userid='<?=$userid;?>'>edit role</button>
|
||||
<button class='badge text-bg-warning editPass' data-userid='<?=$userid;?>'>edit password</button>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
$i++;
|
||||
}
|
||||
?>
|
||||
<tbody id='table-body'>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal fade" id="modal" aria-hidden="true" tabindex="-1">
|
||||
|
||||
<div class="modal fade" id="modal_editRole" aria-hidden="true" tabindex="-1">
|
||||
<div class="modal-dialog modal-dialog-centered modal-dialog-scrollable">
|
||||
<div class="modal-content">
|
||||
<div class='modal-header'> Role Editor </div>
|
||||
<div class='modal-content p-3' style='background-color:#F4F6FF'>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-borderless">
|
||||
<tr class="align-middle"> <th>Userid</th> <th>:</th> <td><input class='form-control' type='text' id='useridRole' disabled /></td> </tr>
|
||||
<tr class="align-middle"> <th>Role</th> <th>:</th>
|
||||
<td>
|
||||
<select id='userroleid' class='form-control'>
|
||||
<option value='0'></option>
|
||||
<?php
|
||||
foreach($userroles as $data) {
|
||||
$userroleid = $data['USERROLEID'];
|
||||
$userrolecode = $data['USERROLECODE'];
|
||||
$userrolename = $data['USERROLENAME'];
|
||||
echo "<option value='$userroleid'>$userrolecode - $userrolename</option>";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<button class='btn btn-sm btn-primary' onclick='saveRole()'>Save</button>
|
||||
<button class='btn btn-sm btn-secondary' data-bs-dismiss="modal">Cancel</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="modal_editPass" aria-hidden="true" tabindex="-1">
|
||||
<div class="modal-dialog modal-dialog-centered modal-dialog-scrollable">
|
||||
<div class="modal-content">
|
||||
<div class='modal-header'> Password Editor </div>
|
||||
<div class='modal-content p-3' style='background-color:#F4F6FF'>
|
||||
<div id='alertPass'></div>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<table class="table table-sm table-borderless">
|
||||
<tr class="align-middle"> <th>Userid</th> <th>:</th> <td><input class='form-control' type='text' id='useridPass' disabled /></td> </tr>
|
||||
<tr class="align-middle"> <th>Password</th> <th>:</th> <td><input class='form-control' type='password' id='pass1'/></td> </tr>
|
||||
<tr class="align-middle"> <th>Conf. Password</th> <th>:</th> <td><input class='form-control' type='password' id='pass2'/></td> </tr>
|
||||
</table>
|
||||
<button class='btn btn-sm btn-primary' onclick='savePass()'>Save</button>
|
||||
<button class='btn btn-sm btn-secondary' data-bs-dismiss="modal">Cancel</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -50,25 +79,101 @@
|
||||
|
||||
<?= $this->section('script') ?>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#table_dashboard').DataTable({
|
||||
order: [],
|
||||
pageLength: 25
|
||||
});
|
||||
});
|
||||
var tb = $('#mytable').DataTable();
|
||||
|
||||
$('.editPass').on('click',function(){
|
||||
var userid = $(this).data('userid');
|
||||
$('.modal-content').load('<?=base_url();?>users/editPass/'+userid, function(){
|
||||
$('#modal').modal('show');
|
||||
index();
|
||||
function index() {
|
||||
let url = '<?=base_url('');?>api/users/index';
|
||||
$.ajax({
|
||||
url: url,
|
||||
method: 'GET',
|
||||
success: function(response) {
|
||||
$("#table-body").html("");
|
||||
var data = response['users'];
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
let userid = data[i].USERID;
|
||||
let username = data[i].USERNAME;
|
||||
let userroleid = data[i].USERROLEID;
|
||||
let userrolename = '';
|
||||
if(data[i].USERROLENAME != null) { userrolename = data[i].USERROLENAME; }
|
||||
let editBtn = '<button class="btn btn-sm btn-secondary" ' + ' onclick="editRole(\'' + userid + '\',\''+ userroleid +'\')">Edit Role' + '</button> ';
|
||||
editBtn += '<button class="btn btn-sm btn-warning" ' + ' onclick="editPass(\'' + userid + '\')">Edit Password' + '</button> ';
|
||||
let datarow = '<tr class="align-middle">' +
|
||||
'<td>' + userid + '</td>' + '<td>' + username + '</td>' + '<td>' + userrolename + '</td>' + '<td>' + editBtn + '</td>' +
|
||||
'</tr>';
|
||||
$("#table-body").append(datarow);
|
||||
}
|
||||
tb.ajax.reload();
|
||||
},
|
||||
error: function(response) { console.log(response.responseJSON); }
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
$('.editRole').on('click',function(){
|
||||
var userid = $(this).data('userid');
|
||||
$('.modal-content').load('<?=base_url();?>users/editRole/'+userid , function(){
|
||||
$('#modal').modal('show');
|
||||
function editPass(userid) {
|
||||
$('#useridPass').val(userid);
|
||||
$('#pass1').val('');
|
||||
$('#pass2').val('');
|
||||
$('#modal_editPass').modal('show');
|
||||
}
|
||||
|
||||
function editRole(userid,userroleid) {
|
||||
$('#useridRole').val(userid);
|
||||
$(`#userroleid option[value='${userroleid}']`).prop('selected', true);
|
||||
$('#modal_editRole').modal('show');
|
||||
}
|
||||
|
||||
function savePass() {
|
||||
var userid = $("#useridPass").val();
|
||||
var pass1 = $("#pass1").val();
|
||||
var pass2 = $("#pass2").val();
|
||||
if(pass1 == pass2) {
|
||||
let url = '<?=base_url('');?>api/users/savePass/'+userid ;
|
||||
let data = { userid: userid, pass : pass1 };
|
||||
$.ajax({
|
||||
url: url,
|
||||
method: "POST",
|
||||
data: data,
|
||||
success: function(response) {
|
||||
$("#alertPass").html("");
|
||||
$("#useridPass").val("");
|
||||
$("#pass1").val("");
|
||||
$("#pass2").val("");
|
||||
$("#modal_editPass").modal('hide');
|
||||
},
|
||||
error: function(response) {
|
||||
console.log(response.responseJSON)
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$('#alertPass').html(
|
||||
"<div class='alert alert-danger alert-dismissible fade show' role='alert'> "+
|
||||
"Password is not the same!" +
|
||||
"<button type='button' class='btn-close' data-bs-dismiss='alert' aria-label='Close'></button>"+
|
||||
"</div>"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
function saveRole() {
|
||||
var userid = $("#useridRole").val();
|
||||
var userroleid = $("#userroleid").val();
|
||||
let url = '<?=base_url('');?>api/users/saveRole/'+userid ;
|
||||
let data = { userid: userid, userroleid : userroleid};
|
||||
$.ajax({
|
||||
url: url,
|
||||
method: "POST",
|
||||
data: data,
|
||||
success: function(response) {
|
||||
$("#alertPass").html("");
|
||||
$("#useridRole").val("");
|
||||
$("#userroleid").val("");
|
||||
$("#modal_editRole").modal('hide');
|
||||
index();
|
||||
},
|
||||
error: function(response) {
|
||||
console.log(response.responseJSON)
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
</script>
|
||||
<?= $this->endSection() ?>
|
||||
Loading…
x
Reference in New Issue
Block a user