From c168634c3a11bf21418278da7d77a5c73210b28d Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Sun, 22 Jun 2025 19:00:31 +0700 Subject: [PATCH] feat(basicdata): tambahkan PermissionSeeder dan optimasi autentikasi di controller - Menambahkan `PermissionSeeder` untuk inisialisasi data izin dengan struktur CRUD pada modul Basicdata. - Data izin mencakup tindakan seperti `create`, `read`, `update`, `delete`, `export`, `authorize`, `report`, dan `restore`. - Menyediakan relasi dengan grup izin menggunakan model `PermissionGroup`. - Memanggil `PermissionSeeder` di `BasicdataDatabaseSeeder` untuk memastikan data izin terpasang saat proses seeding. - Mengoptimalkan autentikasi pengguna di konstruktor controller: - Mengganti logika middleware pada `BranchController`, `CurrencyController`, dan `HolidayCalendarController` dengan properti `$this->user`. - Menggunakan `Auth::guard('web')->user()` sebagai standar pengelolaan autentikasi. - Menghapus middleware yang tidak diperlukan demi meningkatkan kinerja kode. Signed-off-by: Daeng Deni Mardaeni --- app/Http/Controllers/BranchController.php | 6 +-- app/Http/Controllers/CurrencyController.php | 5 +- .../Controllers/HolidayCalendarController.php | 5 +- database/seeders/BasicdataDatabaseSeeder.php | 1 + database/seeders/PermissionSeeder.php | 50 +++++++++++++++++++ 5 files changed, 55 insertions(+), 12 deletions(-) create mode 100644 database/seeders/PermissionSeeder.php diff --git a/app/Http/Controllers/BranchController.php b/app/Http/Controllers/BranchController.php index 390a88d..82d6a9a 100644 --- a/app/Http/Controllers/BranchController.php +++ b/app/Http/Controllers/BranchController.php @@ -2,6 +2,7 @@ namespace Modules\Basicdata\Http\Controllers; + use Illuminate\Support\Facades\Auth; use App\Http\Controllers\Controller; use Exception; use Illuminate\Http\Request; @@ -16,10 +17,7 @@ public function __construct() { - $this->middleware(function ($request, $next) { - $this->user = auth()->user(); - return $next($request); - }); + $this->user = Auth::guard('web')->user(); } public function index() diff --git a/app/Http/Controllers/CurrencyController.php b/app/Http/Controllers/CurrencyController.php index a7afa91..c9e87ea 100644 --- a/app/Http/Controllers/CurrencyController.php +++ b/app/Http/Controllers/CurrencyController.php @@ -16,10 +16,7 @@ public function __construct() { - $this->middleware(function ($request, $next) { - $this->user = auth()->user(); - return $next($request); - }); + $this->user = Auth::guard('web')->user(); } public function index() diff --git a/app/Http/Controllers/HolidayCalendarController.php b/app/Http/Controllers/HolidayCalendarController.php index 41e2d35..5998ac4 100644 --- a/app/Http/Controllers/HolidayCalendarController.php +++ b/app/Http/Controllers/HolidayCalendarController.php @@ -16,10 +16,7 @@ public function __construct() { - $this->middleware(function ($request, $next) { - $this->user = auth()->user(); - return $next($request); - }); + $this->user = Auth::guard('web')->user(); } public function index() diff --git a/database/seeders/BasicdataDatabaseSeeder.php b/database/seeders/BasicdataDatabaseSeeder.php index ab7128f..53bbdea 100644 --- a/database/seeders/BasicdataDatabaseSeeder.php +++ b/database/seeders/BasicdataDatabaseSeeder.php @@ -12,6 +12,7 @@ class BasicdataDatabaseSeeder extends Seeder public function run(): void { $this->call([ + PermissionSeeder::class, BranchesSeeder::class, CurrencySeeder::class, HolidayCalendarSeeder::class diff --git a/database/seeders/PermissionSeeder.php b/database/seeders/PermissionSeeder.php new file mode 100644 index 0000000..4d6c1fc --- /dev/null +++ b/database/seeders/PermissionSeeder.php @@ -0,0 +1,50 @@ +data(); + + foreach ($data as $value) { + $group = PermissionGroup::updateOrCreate([ + 'name' => $value['name'], + 'slug' => Str::slug($value['name']) + ]); + + foreach ($this->crudActions($group->name) as $action) { + $data[] = ['name' => $action, 'group' => $group->id]; + } + } + } + + public function data() + { + return [ + ['name' => 'basic-data'] + ]; + } + + 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; + } + }