From 4db457d7bdeb816c2b6ec348a60484e56a77dec6 Mon Sep 17 00:00:00 2001 From: arifal Date: Wed, 12 Mar 2025 21:17:49 +0700 Subject: [PATCH] fix redirect back users crud --- .../Controllers/Master/UsersController.php | 36 +++++++------------ resources/js/master/users/create.js | 3 +- resources/js/master/users/update.js | 3 +- resources/js/master/users/users.js | 13 +++---- resources/views/master/users/create.blade.php | 3 +- resources/views/master/users/edit.blade.php | 3 +- resources/views/master/users/index.blade.php | 5 +-- 7 files changed, 30 insertions(+), 36 deletions(-) diff --git a/app/Http/Controllers/Master/UsersController.php b/app/Http/Controllers/Master/UsersController.php index 5fa9a60..0743e0f 100644 --- a/app/Http/Controllers/Master/UsersController.php +++ b/app/Http/Controllers/Master/UsersController.php @@ -23,32 +23,19 @@ class UsersController extends Controller return $this->resSuccess($users); } public function index(Request $request){ - $menuId = $request->query('menu_id'); - $user = Auth::user(); - $userId = $user->id; - - // Ambil role_id yang dimiliki user - $roleIds = DB::table('user_role') - ->where('user_id', $userId) - ->pluck('role_id'); - - // Ambil data akses berdasarkan role_id dan menu_id - $roleAccess = DB::table('role_menu') - ->whereIn('role_id', $roleIds) - ->where('menu_id', $menuId) - ->first(); - - // Pastikan roleAccess tidak null sebelum mengakses properti - $creator = $roleAccess->allow_create ?? 0; - $updater = $roleAccess->allow_update ?? 0; - $destroyer = $roleAccess->allow_destroy ?? 0; + $menuId = $request->query('menu_id') ?? $request->input('menu_id'); + $permissions = $this->permissions[$menuId]?? []; // Avoid undefined index error + $creator = $permissions['allow_create'] ?? 0; + $updater = $permissions['allow_update'] ?? 0; + $destroyer = $permissions['allow_destroy'] ?? 0; $users = User::paginate(); - return view('master.users.index', compact('users', 'creator', 'updater', 'destroyer')); + return view('master.users.index', compact('users', 'creator', 'updater', 'destroyer','menuId')); } - public function create(){ + public function create(Request $request){ + $menuId = $request->query('menu_id') ?? $request->input('menu_id'); $roles = Role::all(); - return view('master.users.create', compact('roles')); + return view('master.users.create', compact('roles', 'menuId')); } public function store(UsersRequest $request){ $request->validate([ @@ -86,10 +73,11 @@ class UsersController extends Controller $user = User::find($id); return view('master.users.show', compact('user')); } - public function edit($id){ + public function edit(Request $request, $id){ + $menuId = $request->query('menu_id') ?? $request->input('menu_id'); $user = User::find($id); $roles = Role::all(); - return view('master.users.edit', compact('user', 'roles')); + return view('master.users.edit', compact('user', 'roles', 'menuId')); } public function update(Request $request, $id){ $user = User::find($id); diff --git a/resources/js/master/users/create.js b/resources/js/master/users/create.js index 143e913..541349d 100644 --- a/resources/js/master/users/create.js +++ b/resources/js/master/users/create.js @@ -1,6 +1,7 @@ document.addEventListener("DOMContentLoaded", function (e) { const toastNotification = document.getElementById("toastNotification"); const toast = new bootstrap.Toast(toastNotification); + let menuId = document.getElementById("menuId").value; document .getElementById("btnCreateUsers") .addEventListener("click", async function () { @@ -45,7 +46,7 @@ document.addEventListener("DOMContentLoaded", function (e) { result.message; toast.show(); setTimeout(() => { - window.location.href = "/master/users"; + window.location.href = `/master/users?menu_id=${menuId}`; }, 2000); } else { let error = await response.json(); diff --git a/resources/js/master/users/update.js b/resources/js/master/users/update.js index d4e04a5..cc8b8fc 100644 --- a/resources/js/master/users/update.js +++ b/resources/js/master/users/update.js @@ -6,6 +6,7 @@ document.addEventListener("DOMContentLoaded", function (e) { let toast = new bootstrap.Toast( document.getElementById("toastNotification") ); + let menuId = document.getElementById("menuId").value; submitButton.addEventListener("click", async function () { let submitButton = this; @@ -36,7 +37,7 @@ document.addEventListener("DOMContentLoaded", function (e) { toastMessage.innerText = result.message; toast.show(); setTimeout(() => { - window.location.href = "/master/users"; + window.location.href = `/master/users?menu_id=${menuId}`; }, 2000); } else { let error = await response.json(); diff --git a/resources/js/master/users/users.js b/resources/js/master/users/users.js index 3707809..a9f74d2 100644 --- a/resources/js/master/users/users.js +++ b/resources/js/master/users/users.js @@ -9,9 +9,8 @@ class UsersTable { } initTableUsers() { - let tableContainer = document.getElementById( - "table-users" - ); + let tableContainer = document.getElementById("table-users"); + let menuId = tableContainer.getAttribute("data-menuId"); tableContainer.innerHTML = ""; let canUpdate = tableContainer.getAttribute("data-updater") === "1"; @@ -26,13 +25,15 @@ class UsersTable { "Roles", { name: "Action", - formatter: (cell) =>{ + formatter: (cell) => { if (!canUpdate) { - return gridjs.html(`No Privilege`); + return gridjs.html( + `No Privilege` + ); } return gridjs.html(`
- +
diff --git a/resources/views/master/users/create.blade.php b/resources/views/master/users/create.blade.php index 767ce8b..e86993d 100644 --- a/resources/views/master/users/create.blade.php +++ b/resources/views/master/users/create.blade.php @@ -5,12 +5,13 @@ @include('layouts.partials/page-title', ['title' => 'Users', 'subtitle' => 'Create']) +
- Back + Back
diff --git a/resources/views/master/users/edit.blade.php b/resources/views/master/users/edit.blade.php index 955e628..5ac3452 100644 --- a/resources/views/master/users/edit.blade.php +++ b/resources/views/master/users/edit.blade.php @@ -5,12 +5,13 @@ @include('layouts.partials/page-title', ['title' => 'Users', 'subtitle' => 'Create']) +
- Back + Back
diff --git a/resources/views/master/users/index.blade.php b/resources/views/master/users/index.blade.php index 09a3e44..cdef597 100644 --- a/resources/views/master/users/index.blade.php +++ b/resources/views/master/users/index.blade.php @@ -14,14 +14,15 @@
@if ($creator) - + Create @endif
+ data-destroyer="{{ $destroyer }}" + data-menuId="{{ $menuId }}">