Melakukan Perubahan di admin

This commit is contained in:
Vinsensiaaa
2024-02-26 14:39:07 +07:00
parent ab3367e347
commit cceedcd9c0
7 changed files with 248 additions and 9 deletions
@@ -11,6 +11,8 @@ use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Str; use Str;
use Hash; use Hash;
use illuminate\Support\Facades\DB;
use PhpParser\Node\Expr\Exit_;
class MstPenggunaController extends Controller class MstPenggunaController extends Controller
{ {
@@ -169,6 +171,64 @@ class MstPenggunaController extends Controller
->with('success','Lock upload data sudah diubah!'); ->with('success','Lock upload data sudah diubah!');
} }
public function lockTambahData($userId="", $reset=0, Request $req)
{
$updateValue = [
"lock_tambah_data"=>$reset == 0 ? 1:0,
"lock_upload_by"=>Auth::user()->id
];
if (empty($userId))
{
User::query()->update($updateValue);
}else{
User::where(["id"=>$userId])->update($updateValue);
}
return redirect()->route('users.index')
->with('success','Lock Tambah data sudah diubah!');
}
public function lockUbahData($userId="", $reset=0, Request $req)
{
$updateValue = [
"lock_ubah_data"=>$reset == 0 ? 1:0,
"lock_upload_by"=>Auth::user()->id
];
if (empty($userId))
{
User::query()->update($updateValue);
}else{
User::where(["id"=>$userId])->update($updateValue);
}
return redirect()->route('users.index')
->with('success','Lock Ubah data sudah diubah!');
}
public function lockHapusData($userId="", $reset=0, Request $req)
{
$updateValue = [
"lock_hapus_data"=>$reset == 0 ? 1:0,
"lock_upload_by"=>Auth::user()->id
];
if (empty($userId))
{
User::query()->update($updateValue);
}else{
User::where(["id"=>$userId])->update($updateValue);
}
return redirect()->route('users.index')
->with('success','Lock Hapus data sudah diubah!');
}
public function resetPass(User $user) public function resetPass(User $user)
{ {
$random = Str::random(8); $random = Str::random(8);
+7
View File
@@ -9,6 +9,7 @@ use Hash;
use Session; use Session;
use App\Models\User; use App\Models\User;
use App\Models\RoleUser; use App\Models\RoleUser;
use Illuminate\Contracts\Session\Session as SessionSession;
class AuthController extends Controller class AuthController extends Controller
{ {
@@ -50,6 +51,12 @@ class AuthController extends Controller
Auth::attempt($data); Auth::attempt($data);
if (Auth::check()) { if (Auth::check()) {
if (Auth::user()->status_lock == 1)
{
Auth::logout();
Session::flash('eror', 'Data Terkunci Silahkan Hubungi Admin');
return redirect()->route('login');
}
// True sekalian session field di users nanti bisa dipanggil via Auth // True sekalian session field di users nanti bisa dipanggil via Auth
// Login Success // Login Success
$taValue = []; $taValue = [];
@@ -45,6 +45,9 @@ class RealisasiBelanjaController extends Controller
public function create(Request $request) public function create(Request $request)
{ {
if (Auth::user()->lock_tambah_data == 1){
abort(403, 'Tidak diperbolehkan menambah data oleh admin!');
}
$get = $request->all(); $get = $request->all();
$rskExists = BelanjaRealisasi::where("kode_rsk",$get["rsk"])->count(); $rskExists = BelanjaRealisasi::where("kode_rsk",$get["rsk"])->count();
if ($rskExists > 0) if ($rskExists > 0)
@@ -56,7 +59,9 @@ class RealisasiBelanjaController extends Controller
$VwDpaRsk = VwDpaRsk::where("I_ID",$get["rsk"])->first(); $VwDpaRsk = VwDpaRsk::where("I_ID",$get["rsk"])->first();
$unitSatuan = UnitSatuan::orderBy("id")->get(); $unitSatuan = UnitSatuan::orderBy("id")->get();
return view('realisasi_belanja.create', compact("unitSatuan","VwDpaRsk")); return view('realisasi_belanja.create', compact("unitSatuan","VwDpaRsk"));
} }
public function createFromRsk() public function createFromRsk()
@@ -203,6 +208,9 @@ class RealisasiBelanjaController extends Controller
public function update(Request $request, BelanjaRealisasi $realisasi_belanja) public function update(Request $request, BelanjaRealisasi $realisasi_belanja)
{ {
if (Auth::user()->lock_ubah_data == 1){
abort(403, 'Tidak diperbolehkan mengupdate data oleh admin!');
}
$request->validate([ $request->validate([
"jenis_dana"=>"required", "jenis_dana"=>"required",
"sub_jenis_dana"=>"required", "sub_jenis_dana"=>"required",
@@ -425,6 +433,9 @@ class RealisasiBelanjaController extends Controller
public function destroy(BelanjaRealisasi $realisasi_belanja) public function destroy(BelanjaRealisasi $realisasi_belanja)
{ {
if (Auth::user()->lock_hapus_data == 1){
abort(403, 'Tidak diperbolehkan menghapus data oleh admin!');
}
try{ try{
DB::beginTransaction(); DB::beginTransaction();
$realisasi_belanja->delete(); $realisasi_belanja->delete();
+3
View File
@@ -26,6 +26,9 @@ class User extends Authenticatable
'password', 'password',
'role_name', 'role_name',
'is_lock_upload', 'is_lock_upload',
'lock_tambah_data',
'lock_ubah_data',
'lock_hapus_data',
'lock_upload_time', 'lock_upload_time',
'lock_upload_by', 'lock_upload_by',
'wilayah' 'wilayah'
@@ -19,10 +19,17 @@
<div class="card card-secondary"> <div class="card card-secondary">
<div class="card-header"> <div class="card-header">
<h5 class="card-title"><i class="fa fa-th-list"></i> @php echo $sitesubTitle; @endphp</h5> <h5 class="card-title"><i class="fa fa-th-list"></i> @php echo $sitesubTitle; @endphp</h5>
<div class="card-tools"> <div class="card-tools">
<a class="btn btn-tool btn-dark" href="{{ route('users.create') }}"><i class="fa fa-edit"></i> Tambah Data</a> <a class="btn btn-tool btn-dark" href="{{ route('users.create') }}"><i class="fa fa-edit"></i> Tambah Data</a>
<button id="btn_lock_all" type="button" class="btn btn-tool btn-dark"><i class="fa fa-lock"></i> Lock Upload Data</button> <!-- <button id="btn_lock_all" type="button" class="btn btn-tool btn-dark"><i class="fa fa-lock"></i> Lock Upload Data</button> -->
<button id="btn_reset_lock_all" type="button" class="btn btn-tool btn-dark"><i class="fa fa-unlock"></i> unLock Upload Data</button> <button id="btn_reset_lock_all" type="button" class="btn btn-tool btn-dark"><i class="fa fa-unlock"></i> unLock Upload Data</button>
<!-- <button id="btn_lock_tambah" type="button" class="btn btn-tool btn-dark"><i class="fa fa-lock"></i> Lock Tambah Data</button> -->
<button id="btn_reset_tambah" type="button" class="btn btn-tool btn-dark"><i class="fa fa-unlock"></i> unLock Tambah Data</button>
<!-- <button id="btn_lock_ubah" type="button" class="btn btn-tool btn-dark"><i class="fa fa-lock"></i> Lock Ubah Data</button> -->
<button id="btn_reset_ubah" type="button" class="btn btn-tool btn-dark"><i class="fa fa-unlock"></i> unLock Ubah Data</button>
<button id="btn_lock_hapus" type="button" class="btn btn-tool btn-dark"><i class="fa fa-lock"></i> Lock Hapus Data</button>
<button id="btn_reset_hapus" type="button" class="btn btn-tool btn-dark"><i class="fa fa-unlock"></i> unLock Hapus Data</button>
</div> </div>
</div> </div>
<div class="card-body"> <div class="card-body">
@@ -33,8 +40,11 @@
<th>NRK</th> <th>NRK</th>
<th>Nama</th> <th>Nama</th>
<th>Level</th> <th>Level</th>
<th>Lock Upload</th> <th><input class="form-check-input" type="checkbox" id="btn_lock_all" >Lock Upload</th>
<th width="150px" class="text-center">Action</th> <th><input class="form-check-input" type="checkbox" id="btn_lock_tambah">Lock Tambah</th>
<th><input class="form-check-input" type="checkbox" id="btn_lock_ubah">Lock Ubah</th>
<th><input class="form-check-input" type="checkbox" id="btn_lock_hapus">Lock Hapus</th>
<th class="text-center">Action</th>
</thead> </thead>
</tr> </tr>
{{-- @foreach ($data as $key => $value) {{-- @foreach ($data as $key => $value)
@@ -106,16 +116,26 @@
{ "data": "role_name", "className":"text-center" }, { "data": "role_name", "className":"text-center" },
{ "data": null, "className":"text-center" }, { "data": null, "className":"text-center" },
{ "data": null, "className":"text-center" }, { "data": null, "className":"text-center" },
{ "data": null, "className":"text-center" },
{ "data": null, "className":"text-center" },
{ "data": null, "className":"text-center" },
// { "data": null, "className":"text-center" },
], ],
"rowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull, oSettings) { "rowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull, oSettings) {
let info = dtTable.page.info(); let info = dtTable.page.info();
let numStart = info.page; let numStart = info.page;
let index = (numStart * dtTable.page.len()) + iDisplayIndex + 1; let index = (numStart * dtTable.page.len()) + iDisplayIndex + 1;
let checked = aData["is_lock_upload"] == 1 ? "checked":""; let checked = aData["is_lock_upload"] == 1 ? "checked":"";
let checkedTambahData = aData["lock_tambah_data"] == 1 ? "checked":"";
let checkedUbahData = aData["lock_ubah_data"] == 1 ? "checked":"";
let checkedHapusData = aData["lock_hapus_data"] == 1 ? "checked":"";
$("td:eq(0)", nRow).html(index); $("td:eq(0)", nRow).html(index);
$("td:eq(4)", nRow).html("<input type='checkbox' class='chk-upload' value='"+aData["id"]+"' "+checked+">"); $("td:eq(4)", nRow).html("<input type='checkbox' class='chk-upload' value='"+aData["id"]+"' "+checked+">");
$("td:eq(5)", nRow).html( $("td:eq(5)", nRow).html(`<input class="user_lock_tambah_data" type="checkbox" name="lock-tambah-data[]" ` + checkedTambahData + ` value="` + aData["id"] + `">`);
$("td:eq(6)", nRow).html(`<input class="user_lock_ubah_data" type="checkbox" name="lock-ubah-data[]" ` + checkedUbahData + ` value="` + aData["id"] + `">`);
$("td:eq(7)", nRow).html(`<input class="user_lock_hapus_data" type="checkbox" name="lock-hapus-data[]" ` + checkedHapusData + ` value="` + aData["id"] + `">`);
$("td:eq(8)", nRow).html(
`<form class="form-delete" action="{{ URL::to("/admin/users") }}/`+ aData["id"] +`" method="POST"> `<form class="form-delete" action="{{ URL::to("/admin/users") }}/`+ aData["id"] +`" method="POST">
<a class="btn btn-info btn-sm" href="{{ URL::to("/admin/users") }}/`+ aData["id"] +`" title="Lihat"><i class="fa fa-eye"></i></a> <a class="btn btn-info btn-sm" href="{{ URL::to("/admin/users") }}/`+ aData["id"] +`" title="Lihat"><i class="fa fa-eye"></i></a>
<a class="btn btn-warning btn-sm" href="{{ URL::to("/admin/users") }}/`+ aData["id"] +`/update" title="Ubah"><i class="fa fa-edit"></i></a> <a class="btn btn-warning btn-sm" href="{{ URL::to("/admin/users") }}/`+ aData["id"] +`/update" title="Ubah"><i class="fa fa-edit"></i></a>
@@ -141,12 +161,31 @@
}, },
}); });
$(document).on("click",".chk-upload", function(){ $(document).on("click",".chk-upload", function(){
let val = $(this).val(); let val = $(this).val();
let reset = $(this).prop("checked") == 1 ?0:1; let reset = $(this).prop("checked") == 1 ?0:1;
location.href = "{{ URL::to("/admin/users") }}/"+val+"/lock-upload/"+reset; location.href = "{{ URL::to("/admin/users") }}/"+val+"/lock-upload/"+reset;
}); });
$(document).on("click",".user_lock_tambah_data", function(){
let val = $(this).val();
let reset = $(this).prop("checked") == 1 ?0:1;
location.href = "{{ URL::to("/admin/users") }}/"+val+"/lock-tambah-data/"+reset;
});
$(document).on("click",".user_lock_ubah_data", function(){
let val = $(this).val();
let reset = $(this).prop("checked") == 1 ?0:1;
location.href = "{{ URL::to("/admin/users") }}/"+val+"/lock-ubah-data/"+reset;
});
$(document).on("click",".user_lock_hapus_data", function(){
let val = $(this).val();
let reset = $(this).prop("checked") == 1 ?0:1;
location.href = "{{ URL::to("/admin/users") }}/"+val+"/lock-hapus-data/"+reset;
});
$("#btn_lock_all").on("click", function(){ $("#btn_lock_all").on("click", function(){
let test = Swal.fire({ let test = Swal.fire({
title: 'Fitur upload data akan dikunci untuk semua user!?', title: 'Fitur upload data akan dikunci untuk semua user!?',
@@ -179,6 +218,104 @@
}) })
}); });
$("#btn_lock_tambah").on("click", function(){
let test = Swal.fire({
title: 'Fitur tambah data akan dikunci untuk semua user!?',
showDenyButton: true,
showCancelButton: false,
confirmButtonText: 'Ya',
denyButtonText: "Tidak",
icon: "warning",
}).then((result) => {
/* Read more about isConfirmed, isDenied below */
if (result.isConfirmed) {
location.href = "{{ URL::to("/admin/users") }}/lock-tambah-all/0/0";
}
})
});
$("#btn_reset_tambah").on("click", function(){
let test = Swal.fire({
title: 'Fitur tambah data akan direset untuk semua user!?',
showDenyButton: true,
showCancelButton: false,
confirmButtonText: 'Ya',
denyButtonText: "Tidak",
icon: "warning",
}).then((result) => {
/* Read more about isConfirmed, isDenied below */
if (result.isConfirmed) {
location.href = "{{ URL::to("/admin/users") }}/lock-tambah-all/0/1";
}
})
});
$("#btn_lock_ubah").on("click", function(){
let test = Swal.fire({
title: 'Fitur ubah data akan dikunci untuk semua user!?',
showDenyButton: true,
showCancelButton: false,
confirmButtonText: 'Ya',
denyButtonText: "Tidak",
icon: "warning",
}).then((result) => {
/* Read more about isConfirmed, isDenied below */
if (result.isConfirmed) {
location.href = "{{ URL::to("/admin/users") }}/lock-ubah-all/0/0";
}
})
});
$("#btn_reset_ubah").on("click", function(){
let test = Swal.fire({
title: 'Fitur ubah data akan direset untuk semua user!?',
showDenyButton: true,
showCancelButton: false,
confirmButtonText: 'Ya',
denyButtonText: "Tidak",
icon: "warning",
}).then((result) => {
/* Read more about isConfirmed, isDenied below */
if (result.isConfirmed) {
location.href = "{{ URL::to("/admin/users") }}/lock-ubah-all/0/1";
}
})
});
$("#btn_lock_hapus").on("click", function(){
let test = Swal.fire({
title: 'Fitur hapus data akan dikunci untuk semua user!?',
showDenyButton: true,
showCancelButton: false,
confirmButtonText: 'Ya',
denyButtonText: "Tidak",
icon: "warning",
}).then((result) => {
/* Read more about isConfirmed, isDenied below */
if (result.isConfirmed) {
location.href = "{{ URL::to("/admin/users") }}/lock-hapus-all/0/0";
}
})
});
$("#btn_reset_hapus").on("click", function(){
let test = Swal.fire({
title: 'Fitur upload data akan direset untuk semua user!?',
showDenyButton: true,
showCancelButton: false,
confirmButtonText: 'Ya',
denyButtonText: "Tidak",
icon: "warning",
}).then((result) => {
/* Read more about isConfirmed, isDenied below */
if (result.isConfirmed) {
location.href = "{{ URL::to("/admin/users") }}/lock-hapus-all/0/1";
}
})
});
$(document).on("click",".btn_reset_password",function (e){ $(document).on("click",".btn_reset_password",function (e){
e.preventDefault(); e.preventDefault();
let url = $(this).attr("href"); let url = $(this).attr("href");
@@ -196,6 +333,9 @@
} }
}) })
}); });
$("#optRole").on("change",function(){
dtTable.draw();
});
}); });
</script> </script>
@endsection @endsection
@@ -1,4 +1,5 @@
@php @php
// var_dump(Auth::user()->lock_ubah_data); exit;
$siteBreadcumb = [ $siteBreadcumb = [
["url"=>"/realisasi-pendapatan","label"=>$siteTitle], ["url"=>"/realisasi-pendapatan","label"=>$siteTitle],
]; ];
@@ -94,7 +95,7 @@
<h2 class="card-title"><i class="fa fa-th-list mr-2"></i> {{ $sitesubTitle }}</h2> <h2 class="card-title"><i class="fa fa-th-list mr-2"></i> {{ $sitesubTitle }}</h2>
<div class="card-tools"> <div class="card-tools">
@php if (Auth::user()->can("Input Realisasi DBH Realisasi Belanja")) { @endphp @php if (Auth::user()->can("Input Realisasi DBH Realisasi Belanja")) { @endphp
<a class="modalButton btn btn-sm btn-success" size="modal-xl" title="Tambah Data Realisasi Belanja" href="{{ URL::to("/realisasi-belanja/create-from-rsk") }}"><i class='fa fa-edit'></i> Tambah Data</a> <a id= "btnTambah" class="modalButton btn btn-sm btn-success" size="modal-xl" title="Tambah Data Realisasi Belanja" href="{{ URL::to("/realisasi-belanja/create-from-rsk") }}"><i class='fa fa-edit'></i> Tambah Data</a>
@php } @endphp @php } @endphp
</div> </div>
</div> </div>
@@ -282,8 +283,8 @@
let realisasi = aData["jml"] > 0 ? "<span class='text-success font-weight-bold p-1'>"+separateNumberIndo(aData["jml"])+"</span>":""; let realisasi = aData["jml"] > 0 ? "<span class='text-success font-weight-bold p-1'>"+separateNumberIndo(aData["jml"])+"</span>":"";
// let btnInput = parseInt(aData["f_view_sbpk"]) == 0 ? `<a class="btn btn-warning btn-sm" href="{{ URL::to("/realisasi-belanja") }}/`+ aData["id"] +`/edit" title="Ubah"><i class="fa fa-edit"></i></a> // let btnInput = parseInt(aData["f_view_sbpk"]) == 0 ? `<a class="btn btn-warning btn-sm" href="{{ URL::to("/realisasi-belanja") }}/`+ aData["id"] +`/edit" title="Ubah"><i class="fa fa-edit"></i></a>
// <button type="submit" class="btn btn-danger btn-sm"title="Hapus"><i class="fa fa-trash"></i></button>`:``; // <button type="submit" class="btn btn-danger btn-sm"title="Hapus"><i class="fa fa-trash"></i></button>`:``;
let btnInput = `<a class="btn btn-warning btn-sm" href="{{ URL::to("/realisasi-belanja") }}/`+ aData["id"] +`/edit" title="Ubah"><i class="fa fa-edit"></i></a> let btnInput = `<a class="btn btn-warning btn-sm btnEdit" href="{{ URL::to("/realisasi-belanja") }}/`+ aData["id"] +`/edit" title="Ubah" ><i class="fa fa-edit"></i></a>
<button type="submit" class="btn btn-danger btn-sm"title="Hapus"><i class="fa fa-trash"></i></button>`; <button type="submit" class="btn btn-danger btn-sm btnHapus"title="Hapus" id="btnHapus"><i class="fa fa-trash"></i></button>`;
let volume_satuan_realisasi = aData["volume_satuan_realisasi"] > 0 ? "<span class='text-success font-weight-bold p-1'>"+separateNumberIndo(aData["volume_satuan_realisasi"])+"</span>":""; let volume_satuan_realisasi = aData["volume_satuan_realisasi"] > 0 ? "<span class='text-success font-weight-bold p-1'>"+separateNumberIndo(aData["volume_satuan_realisasi"])+"</span>":"";
let unit_satuan_realisasi = aData["unit_satuan_realisasi"] != null ? "<span class='text-success font-weight-bold p-1'>"+aData["unit_satuan_realisasi"]+"</span>":""; let unit_satuan_realisasi = aData["unit_satuan_realisasi"] != null ? "<span class='text-success font-weight-bold p-1'>"+aData["unit_satuan_realisasi"]+"</span>":"";
@@ -380,7 +381,8 @@
], ],
"drawCallback": function( settings ) { "drawCallback": function( settings ) {
$(".dataTables_scrollBody").scrollTo($("#tblRealisasi .c_row_"+selectionRow)); $(".dataTables_scrollBody").scrollTo($("#tblRealisasi .c_row_"+selectionRow));
console.log(selectionRow); @php echo Auth::user()->lock_ubah_data == 1 ? "$('.btnEdit').remove();\n":""; @endphp
@php echo Auth::user()->lock_hapus_data == 1 ? "$('.btnHapus').remove();\n":""; @endphp
} }
}); });
@@ -404,6 +406,8 @@
}); });
}); });
@php echo Auth::user()->lock_tambah_data == 1 ? "$('#btnTambah').remove();\n":""; @endphp
}); });
</script> </script>
@endsection @endsection
+14
View File
@@ -33,6 +33,20 @@ Route::group(['middleware' => 'auth'], function () {
Route::post('users/datatable', [MstPenggunaController::class,'datatable']); Route::post('users/datatable', [MstPenggunaController::class,'datatable']);
Route::get('users/{userId}/lock-upload/{reset}', [MstPenggunaController::class, 'lockUploadData']); Route::get('users/{userId}/lock-upload/{reset}', [MstPenggunaController::class, 'lockUploadData']);
Route::get('users/lock-upload-all/{userId}/{reset}', [MstPenggunaController::class, 'lockUploadData']); Route::get('users/lock-upload-all/{userId}/{reset}', [MstPenggunaController::class, 'lockUploadData']);
Route::get('users/{userId}/lock-tambah-data/{type}', [MstPenggunaController::class, 'lockTambahData']);
Route::get('users/{userId}/lock-ubah-data/{type}', [MstPenggunaController::class, 'lockUbahData']);
Route::get('users/{userId}/lock-hapus-data/{type}', [MstPenggunaController::class, 'lockHapusData']);
Route::get('users/lock-tambah-all/{userId}/{reset}', [MstPenggunaController::class, 'lockTambahData']);
Route::get('users/{userId}/lock-tambah-all/{reset}', [MstPenggunaController::class, 'lockTambahData']);
Route::get('users/{userId}/lock-ubah/{reset}', [MstPenggunaController::class, 'lockUbahData']);
Route::get('users/lock-ubah-all/{userId}/{reset}', [MstPenggunaController::class, 'lockUbahData']);
Route::get('users/lock-hapus-all/{userId}/{reset}', [MstPenggunaController::class, 'lockHapusData']);
Route::get('users/{userId}/lock-hapus-all/{reset}', [MstPenggunaController::class, 'lockHapusData']);
Route::get('users/{user}/reset', [MstPenggunaController::class, 'resetPass']); Route::get('users/{user}/reset', [MstPenggunaController::class, 'resetPass']);
Route::resource('users', MstPenggunaController::class); Route::resource('users', MstPenggunaController::class);