From bcdbbacf5c61deec9b8fedc4395f4256cacd286c Mon Sep 17 00:00:00 2001 From: Yoga Pangestu Date: Thu, 12 Mar 2026 09:29:37 +0700 Subject: [PATCH] feat: Implement authorization checks for create, edit, and delete actions on StudyGroup and CourseSchedule pages. --- app/Filament/Pages/Information/CourseSchedule/Index.php | 9 ++++++--- app/Filament/Pages/Learning/StudyGroup/Index.php | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/app/Filament/Pages/Information/CourseSchedule/Index.php b/app/Filament/Pages/Information/CourseSchedule/Index.php index 2c54674..7b4613e 100644 --- a/app/Filament/Pages/Information/CourseSchedule/Index.php +++ b/app/Filament/Pages/Information/CourseSchedule/Index.php @@ -76,18 +76,21 @@ public function form(Schema $schema): Schema protected function getHeaderActions(): array { return [ - CreateScheduleAction::make(), + CreateScheduleAction::make() + ->visible(fn () => auth()->user()->can('Create:CourseSchedule')), ]; } protected function editScheduleAction(): Action { - return EditScheduleAction::make(); + return EditScheduleAction::make() + ->visible(fn () => auth()->user()->can('Update:CourseSchedule')); } protected function deleteScheduleAction(): Action { - return DeleteScheduleAction::make(); + return DeleteScheduleAction::make() + ->visible(fn () => auth()->user()->can('Delete:CourseSchedule')); } public function getSchedules(): Collection diff --git a/app/Filament/Pages/Learning/StudyGroup/Index.php b/app/Filament/Pages/Learning/StudyGroup/Index.php index 9ebce52..5cf4a0e 100644 --- a/app/Filament/Pages/Learning/StudyGroup/Index.php +++ b/app/Filament/Pages/Learning/StudyGroup/Index.php @@ -84,18 +84,21 @@ public function form(Schema $schema): Schema protected function getHeaderActions(): array { return [ - CreateStudyGroupAction::make(), + CreateStudyGroupAction::make() + ->visible(fn () => auth()->user()->can('Create:StudyGroup')), ]; } protected function editStudyGroupAction(): Action { - return EditStudyGroupAction::make(); + return EditStudyGroupAction::make() + ->visible(fn () => auth()->user()->can('Update:StudyGroup')); } protected function deleteStudyGroupAction(): Action { - return DeleteStudyGroupAction::make(); + return DeleteStudyGroupAction::make() + ->visible(fn () => auth()->user()->can('Delete:StudyGroup')); } public function getStudyGroups(): Collection