beranidigital / filament-access
为 Laravel Filament 提供多面板细粒度权限,用于分析、生成并注入应用中所有类和方法。或者 whatever that means。
0.2.1
2024-07-05 09:46 UTC
Requires
- php: ^8.1
- filament/filament: ^3.0
- nikic/php-parser: ^5.0
- spatie/laravel-package-tools: ^1.15.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.9
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^8.0
- pestphp/pest: ^2.1
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2024-09-08 17:05:13 UTC
README
为 Laravel Filament 提供多面板超细粒度权限,用于分析、生成并注入应用中所有类和方法。
此包的功能
- 生成几乎所有 Filament 组件权限的列表
- 自动重定义类以避免冲突
为什么我需要这个包
- 你有太多的类和方法需要逐一定义权限
- 默认 Filament 授权不支持多面板
此包不做什么
- 它不提供完整的授权解决方案
- 它不是为了自定义定义权限,你需要自己定义
安装
您可以通过 composer 安装此包
composer require beranidigital/filament-access
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="filament-access-config"
使用方法
\BeraniDigitalID\FilamentAccess\Facades\FilamentAccess::analyzeAll();
或
php artisan filament-access:generate php artisan filament-access:hijack
工作原理
- 它通过钩入一个类来修正权限
- 该类将调用
Gate::authorize('viewAny', $correctArgument)
,其中App\Filament\Resources\MyResource
作为参数的示例 - 您可以使用自己的自定义逻辑进行授权
\Illuminate\Support\Facades\Gate::before(function ($user, $ability, $arguments) { $permission = \BeraniDigitalID\FilamentAccess\Facades\FilamentAccess::determinePermissionName($ability, $arguments); if (!$user->hasPermissionTo($permission)) { return false; } // continue to the next authorization logic });
变更日志
请参阅 CHANGELOG 了解最近的变化。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全漏洞
请审查 我们的安全策略 了解如何报告安全漏洞。
鸣谢
许可证
MIT 许可证(MIT)。请参阅 许可证文件 了解更多信息。