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.
This commit is contained in:
Daeng Deni Mardaeni
2025-06-22 20:51:20 +07:00
parent 53a2c3a38e
commit d8767174ca
5 changed files with 38 additions and 26 deletions

View File

@@ -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(){

View File

@@ -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(){

View File

@@ -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(){

View File

@@ -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);
});
}
/**

View File

@@ -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;
}
}