phpsa / filament-authentication

MIT License
112 stars 24 forks source link

Add a trait for page policy and settings page policy #11

Closed FalconNL93 closed 2 years ago

FalconNL93 commented 2 years ago

Adds traits to extend policies to Filament pages and Filament Setting Pages

# Filament Pages policy trait
use PagePolicyTrait;

# Fileament Settings Pages policy trait
use SettingsPagePolicyTrait;

Example usage on Filament Page:

use Filament\Pages\Page;
use Phpsa\FilamentAuthentication\Traits\PagePolicyTrait;

class TestPage extends Page
{
    use PagePolicyTrait;

    protected static ?string $navigationIcon = 'heroicon-o-document-text';
    protected static string $view = 'filament.pages.test-page';
}

Example usage on Filament Settings Page

use App\Settings\TestSettings;
use Filament\Forms\Components\Checkbox;
use Filament\Forms\Components\TextInput;
use Filament\Pages\SettingsPage;
use Phpsa\FilamentAuthentication\Traits\SettingsPagePolicyTrait;

class ManageSettings extends SettingsPage
{
    use SettingsPagePolicyTrait;

    protected static string $settings = TestSettings::class;
    protected static ?string $navigationGroup = 'Test';
    protected static ?string $navigationIcon = 'heroicon-o-cog';

    protected function getFormSchema(): array
    {
        return [
            TextInput::make('site_name')->label('Site name'),
            Checkbox::make('site_active')
                ->label('Enable site')
        ];
    }
}

Link your page together with the policy to $policies = [];.

phpsa commented 2 years ago

Thank you, will test and consider

github-actions[bot] commented 2 years ago

:tada: This PR is included in version 2.1.0-beta.1 :tada:

The release is available on GitHub release

Your semantic-release bot :package::rocket:

github-actions[bot] commented 2 years ago

:tada: This PR is included in version 2.1.0 :tada:

The release is available on GitHub release

Your semantic-release bot :package::rocket: