From d8767174cac3ea9787bcd72a5b89be8a0412dc62 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Sun, 22 Jun 2025 20:51:20 +0700 Subject: [PATCH] feat(location): perbaiki middleware auth dan optimalkan metode controllers - **Middleware Auth**: - Mengganti penanganan middleware auth menggunakan `this->middleware('auth')` pada semua controller. - Menambahkan middleware closure untuk menginisialisasi properti user dengan `Auth::user()` setelah auth diverifikasi. - **Controller Updates**: - **CitiesController**: - Menambahkan variabel `$provinces` untuk mendapatkan semua data provinsi. - Menambahkan data `$provinces` ke dalam view `location::cities.index`. - **DistrictsController**: - Menambahkan variabel `$provinces` untuk mendukung akses data provinsi dalam view. - Menyertakan data provinsi ke dalam view `location::districts.index`. - **ProvincesController** dan **VillagesController**: - Penyesuaian middleware auth sama seperti controller lainnya. Tidak ada perubahan pada struktur utama lainnya. - **Seeder Optimization**: - Menghapus metode `crudActions` dalam `PermissionSeeder` yang sebelumnya menghasilkan daftar tindakan CRUD. - Mengurangi redundansi kode seeding dengan langsung membuat grup permission tanpa tindakan tambahan. - Membersihkan logika tambahan terkait CRUD actions yang tidak dipakai. --- app/Http/Controllers/CitiesController.php | 13 +++++++++++-- app/Http/Controllers/DistrictsController.php | 13 ++++++++++--- app/Http/Controllers/ProvincesController.php | 9 ++++++++- app/Http/Controllers/VillagesController.php | 9 ++++++++- database/seeders/PermissionSeeder.php | 20 +------------------- 5 files changed, 38 insertions(+), 26 deletions(-) diff --git a/app/Http/Controllers/CitiesController.php b/app/Http/Controllers/CitiesController.php index eeb62b4..f8c4ec3 100644 --- a/app/Http/Controllers/CitiesController.php +++ b/app/Http/Controllers/CitiesController.php @@ -18,7 +18,14 @@ class CitiesController extends Controller public function __construct() { - $this->user = Auth::guard('web')->user(); + // Mengatur middleware auth + $this->middleware('auth'); + + // Mengatur user setelah middleware auth dijalankan + $this->middleware(function ($request, $next) { + $this->user = Auth::user(); + return $next($request); + }); } public function index(){ @@ -26,7 +33,9 @@ class CitiesController extends Controller abort(403, 'Sorry! You are not allowed to view cities.'); } - return view('location::cities.index'); + $provinces = Province::all(); + + return view('location::cities.index', compact('provinces')); } public function create(){ diff --git a/app/Http/Controllers/DistrictsController.php b/app/Http/Controllers/DistrictsController.php index 21de9e8..e45d3fd 100644 --- a/app/Http/Controllers/DistrictsController.php +++ b/app/Http/Controllers/DistrictsController.php @@ -19,15 +19,22 @@ class DistrictsController extends Controller public function __construct() { - $this->user = Auth::guard('web')->user(); + // Mengatur middleware auth + $this->middleware('auth'); + + // Mengatur user setelah middleware auth dijalankan + $this->middleware(function ($request, $next) { + $this->user = Auth::user(); + return $next($request); + }); } public function index(){ if (is_null($this->user) || !$this->user->can('location.read')) { abort(403, 'Sorry! You are not allowed to view districts.'); } - - return view('location::districts.index'); + $provinces = Province::all(); + return view('location::districts.index', compact('provinces')); } public function create(){ diff --git a/app/Http/Controllers/ProvincesController.php b/app/Http/Controllers/ProvincesController.php index 4928eb6..acc2fd9 100644 --- a/app/Http/Controllers/ProvincesController.php +++ b/app/Http/Controllers/ProvincesController.php @@ -16,7 +16,14 @@ class ProvincesController extends Controller public function __construct() { - $this->user = Auth::guard('web')->user(); + // Mengatur middleware auth + $this->middleware('auth'); + + // Mengatur user setelah middleware auth dijalankan + $this->middleware(function ($request, $next) { + $this->user = Auth::user(); + return $next($request); + }); } public function index(){ diff --git a/app/Http/Controllers/VillagesController.php b/app/Http/Controllers/VillagesController.php index 7126d4e..1031008 100644 --- a/app/Http/Controllers/VillagesController.php +++ b/app/Http/Controllers/VillagesController.php @@ -20,7 +20,14 @@ public function __construct() { - $this->user = Auth::guard('web')->user(); + // Mengatur middleware auth + $this->middleware('auth'); + + // Mengatur user setelah middleware auth dijalankan + $this->middleware(function ($request, $next) { + $this->user = Auth::user(); + return $next($request); + }); } /** diff --git a/database/seeders/PermissionSeeder.php b/database/seeders/PermissionSeeder.php index e6addbd..706db80 100644 --- a/database/seeders/PermissionSeeder.php +++ b/database/seeders/PermissionSeeder.php @@ -16,14 +16,10 @@ $data = $this->data(); foreach ($data as $value) { - $group = PermissionGroup::updateOrCreate([ + PermissionGroup::updateOrCreate([ 'name' => $value['name'], 'slug' => Str::slug($value['name']) ]); - - foreach ($this->crudActions($group->name) as $action) { - $data[] = ['name' => $action, 'group' => $group->id]; - } } } @@ -33,18 +29,4 @@ ['name' => 'location'] ]; } - - public function crudActions($name) - { - $actions = []; - // list of permission actions - $crud = ['create', 'read', 'update', 'delete','export', 'authorize', 'report','restore']; - - - foreach ($crud as $value) { - $actions[] = $name . '.' . $value; - } - - return $actions; - } }