From cceedcd9c0f5768d7114e6be90b3f593ecc26bd9 Mon Sep 17 00:00:00 2001 From: Vinsensiaaa Date: Mon, 26 Feb 2024 14:39:07 +0700 Subject: [PATCH] Melakukan Perubahan di admin --- .../Admin/MstPenggunaController.php | 60 +++++++ app/Http/Controllers/AuthController.php | 7 + .../RealisasiBelanjaController.php | 11 ++ app/Models/User.php | 3 + .../views/admin/mst_pengguna/index.blade.php | 150 +++++++++++++++++- .../views/realisasi_belanja/index.blade.php | 12 +- routes/web.php | 14 ++ 7 files changed, 248 insertions(+), 9 deletions(-) diff --git a/app/Http/Controllers/Admin/MstPenggunaController.php b/app/Http/Controllers/Admin/MstPenggunaController.php index dd15aba..53763ef 100644 --- a/app/Http/Controllers/Admin/MstPenggunaController.php +++ b/app/Http/Controllers/Admin/MstPenggunaController.php @@ -11,6 +11,8 @@ use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Auth; use Str; use Hash; +use illuminate\Support\Facades\DB; +use PhpParser\Node\Expr\Exit_; class MstPenggunaController extends Controller { @@ -169,6 +171,64 @@ class MstPenggunaController extends Controller ->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) { $random = Str::random(8); diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index a85b339..bdfb04c 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -9,6 +9,7 @@ use Hash; use Session; use App\Models\User; use App\Models\RoleUser; +use Illuminate\Contracts\Session\Session as SessionSession; class AuthController extends Controller { @@ -50,6 +51,12 @@ class AuthController extends Controller Auth::attempt($data); 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 // Login Success $taValue = []; diff --git a/app/Http/Controllers/RealisasiBelanjaController.php b/app/Http/Controllers/RealisasiBelanjaController.php index 73d2e53..63855fb 100644 --- a/app/Http/Controllers/RealisasiBelanjaController.php +++ b/app/Http/Controllers/RealisasiBelanjaController.php @@ -45,6 +45,9 @@ class RealisasiBelanjaController extends Controller public function create(Request $request) { + if (Auth::user()->lock_tambah_data == 1){ + abort(403, 'Tidak diperbolehkan menambah data oleh admin!'); + } $get = $request->all(); $rskExists = BelanjaRealisasi::where("kode_rsk",$get["rsk"])->count(); if ($rskExists > 0) @@ -56,7 +59,9 @@ class RealisasiBelanjaController extends Controller $VwDpaRsk = VwDpaRsk::where("I_ID",$get["rsk"])->first(); $unitSatuan = UnitSatuan::orderBy("id")->get(); + return view('realisasi_belanja.create', compact("unitSatuan","VwDpaRsk")); + } public function createFromRsk() @@ -203,6 +208,9 @@ class RealisasiBelanjaController extends Controller 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([ "jenis_dana"=>"required", "sub_jenis_dana"=>"required", @@ -425,6 +433,9 @@ class RealisasiBelanjaController extends Controller public function destroy(BelanjaRealisasi $realisasi_belanja) { + if (Auth::user()->lock_hapus_data == 1){ + abort(403, 'Tidak diperbolehkan menghapus data oleh admin!'); + } try{ DB::beginTransaction(); $realisasi_belanja->delete(); diff --git a/app/Models/User.php b/app/Models/User.php index 6c444d3..c399790 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -26,6 +26,9 @@ class User extends Authenticatable 'password', 'role_name', 'is_lock_upload', + 'lock_tambah_data', + 'lock_ubah_data', + 'lock_hapus_data', 'lock_upload_time', 'lock_upload_by', 'wilayah' diff --git a/resources/views/admin/mst_pengguna/index.blade.php b/resources/views/admin/mst_pengguna/index.blade.php index 461ccca..904dc67 100644 --- a/resources/views/admin/mst_pengguna/index.blade.php +++ b/resources/views/admin/mst_pengguna/index.blade.php @@ -19,10 +19,17 @@
@php echo $sitesubTitle; @endphp
+
Tambah Data - + + + + + + +
@@ -33,8 +40,11 @@ NRK Nama Level - Lock Upload - Action + Lock Upload + Lock Tambah + Lock Ubah + Lock Hapus + Action {{-- @foreach ($data as $key => $value) @@ -105,17 +115,27 @@ { "data": "name", "className":"text-left" }, { "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" }, ], "rowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull, oSettings) { let info = dtTable.page.info(); let numStart = info.page; let index = (numStart * dtTable.page.len()) + iDisplayIndex + 1; 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(4)", nRow).html(""); - $("td:eq(5)", nRow).html( + $("td:eq(5)", nRow).html(``); + $("td:eq(6)", nRow).html(``); + $("td:eq(7)", nRow).html(``); + $("td:eq(8)", nRow).html( `
@@ -141,12 +161,31 @@ }, }); + $(document).on("click",".chk-upload", function(){ let val = $(this).val(); let reset = $(this).prop("checked") == 1 ?0:1; 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(){ let test = Swal.fire({ title: 'Fitur upload data akan dikunci untuk semua user!?', @@ -175,10 +214,108 @@ /* Read more about isConfirmed, isDenied below */ if (result.isConfirmed) { location.href = "{{ URL::to("/admin/users") }}/lock-upload-all/0/1"; + } + }) + }); + + + $("#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){ e.preventDefault(); let url = $(this).attr("href"); @@ -196,6 +333,9 @@ } }) }); + $("#optRole").on("change",function(){ + dtTable.draw(); + }); }); @endsection diff --git a/resources/views/realisasi_belanja/index.blade.php b/resources/views/realisasi_belanja/index.blade.php index c4c69a7..11456e9 100644 --- a/resources/views/realisasi_belanja/index.blade.php +++ b/resources/views/realisasi_belanja/index.blade.php @@ -1,4 +1,5 @@ @php + // var_dump(Auth::user()->lock_ubah_data); exit; $siteBreadcumb = [ ["url"=>"/realisasi-pendapatan","label"=>$siteTitle], ]; @@ -94,7 +95,7 @@

{{ $sitesubTitle }}

@php if (Auth::user()->can("Input Realisasi DBH Realisasi Belanja")) { @endphp - Tambah Data + Tambah Data @php } @endphp
@@ -282,8 +283,8 @@ let realisasi = aData["jml"] > 0 ? ""+separateNumberIndo(aData["jml"])+"":""; // let btnInput = parseInt(aData["f_view_sbpk"]) == 0 ? ` // `:``; - let btnInput = ` - `; + let btnInput = ` + `; let volume_satuan_realisasi = aData["volume_satuan_realisasi"] > 0 ? ""+separateNumberIndo(aData["volume_satuan_realisasi"])+"":""; let unit_satuan_realisasi = aData["unit_satuan_realisasi"] != null ? ""+aData["unit_satuan_realisasi"]+"":""; @@ -380,7 +381,8 @@ ], "drawCallback": function( settings ) { $(".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 } }); @@ -403,6 +405,8 @@ } }); }); + + @php echo Auth::user()->lock_tambah_data == 1 ? "$('#btnTambah').remove();\n":""; @endphp }); diff --git a/routes/web.php b/routes/web.php index 5282aca..8f355ef 100644 --- a/routes/web.php +++ b/routes/web.php @@ -33,6 +33,20 @@ Route::group(['middleware' => 'auth'], function () { Route::post('users/datatable', [MstPenggunaController::class,'datatable']); Route::get('users/{userId}/lock-upload/{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::resource('users', MstPenggunaController::class);