feat: Integrate HasPageShield trait for enhanced authorization in CourseSchedule, StudyGroup, and ManageSettings pages, including permission methods for access control.

This commit is contained in:
Yoga Pangestu 2026-03-12 09:01:00 +07:00
parent 9f4224b108
commit 33cc617a3f
3 changed files with 17 additions and 2 deletions

View File

@ -9,6 +9,7 @@
use App\Models\CourseSchedule;
use App\Settings\GeneralSettings;
use BackedEnum;
use BezhanSalleh\FilamentShield\Traits\HasPageShield;
use Filament\Actions\Action;
use Filament\Actions\Concerns\InteractsWithActions;
use Filament\Actions\Contracts\HasActions;
@ -26,7 +27,7 @@
class Index extends Page implements HasActions, HasForms
{
use InteractsWithActions, InteractsWithForms;
use HasPageShield, InteractsWithActions, InteractsWithForms;
protected static ?string $model = CourseSchedule::class;

View File

@ -10,6 +10,7 @@
use App\Models\StudyGroup;
use App\Settings\GeneralSettings;
use BackedEnum;
use BezhanSalleh\FilamentShield\Traits\HasPageShield;
use Filament\Actions\Action;
use Filament\Actions\Concerns\InteractsWithActions;
use Filament\Actions\Contracts\HasActions;
@ -28,7 +29,7 @@
class Index extends Page implements HasActions, HasForms
{
use InteractsWithActions, InteractsWithForms;
use HasPageShield, InteractsWithActions, InteractsWithForms;
protected static ?string $model = StudyGroup::class;
@ -42,6 +43,11 @@ class Index extends Page implements HasActions, HasForms
protected static ?string $slug = 'learning/study-groups';
public static function getPagePermission(): string
{
return 'View:StudyGroup';
}
protected string $view = 'filament.pages.information.list-study-groups';
public ?int $course_id = null;

View File

@ -5,6 +5,7 @@
use App\Filament\Support\SystemNotification;
use App\Settings\GeneralSettings;
use BackedEnum;
use BezhanSalleh\FilamentShield\Traits\HasPageShield;
use Filament\Forms\Components\Select;
use Filament\Notifications\Notification;
use Filament\Pages\SettingsPage;
@ -15,6 +16,8 @@
class ManageSettings extends SettingsPage
{
use HasPageShield;
protected static string|UnitEnum|null $navigationGroup = 'Sistem';
protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedCog6Tooth;
@ -25,6 +28,11 @@ class ManageSettings extends SettingsPage
protected static ?string $slug = 'system/settings';
public static function getPagePermission(): string
{
return 'View:ManageSettings';
}
protected static ?int $navigationSort = 10;
protected static string $settings = GeneralSettings::class;