z3d0x / filament-simple-permissions
此包已被弃用且不再维护。未建议替代包。
只需在 filament 资源中定义权限。
v1.0.1
2023-06-09 18:48 UTC
Requires
- php: ^8.0|^8.1|^8.2
- filament/filament: ^2.10
- illuminate/contracts: ^8.0|^9.0|^10.0
- spatie/laravel-package-tools: ^1.9.2
Requires (Dev)
- nunomaduro/collision: ^6.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2023-08-13 04:38:31 UTC
README
警告
此包不再维护
只需在 filament 资源中定义权限。
轻松定义 Filament 资源 & 关系管理器的权限
安装
您可以通过 composer 安装此包
composer require z3d0x/filament-simple-permissions
安装后无需任何额外配置
使用方法
此包包含两个特质 HasResourcePermissions
和 HasRelationManagerPermissions
,分别可用于 Filament 的资源和关系管理器。
要使用,只需在您的资源/关系管理器中使用特质并定义您的权限。
资源示例
//UserResource.php use Z3d0X\FilamentSimplePermissions\Concerns\HasResourcePermissions; class UserResource extends Resource { use HasResourcePermissions; protected static array $permissions = [ 'viewAny' => 'access-users', 'view' => 'access-users', 'create' => 'create-users', 'update' => 'update-users', 'delete' => ['update-users', 'delete-stuff'], //use an array if multiple permissions are needed 'deleteAny' => false, //also supports boolean, to allow/disallow for all users ]; }
关系管理器示例
//PostsRelationManager.php use Z3d0X\FilamentSimplePermissions\Concerns\HasRelationManagerPermissions; class PostsRelationManager extends HasManyRelationManager { use HasRelationManagerPermissions; protected static array $permissions = [ 'create' => 'create-posts', 'update' => 'update-posts', 'delete' => ['update-posts', 'delete-stuff'], //use an array if multiple permissions are needed 'deleteAny' => false, //also supports boolean, to allow/disallow for all users //Supports relation manager specific actions. 'viewForRecord' => 'access-posts', 'associate' => 'update-posts', 'dissociate' => 'update-posts', 'dissociateAny' => false, ]; }
高级使用
对于高级使用,您可以定义一个静态的 getPermissions()
方法,而不是 $permissions
属性
//PostsRelationManager.php use Z3d0X\FilamentSimplePermissions\Concerns\HasRelationManagerPermissions; use Illuminate\Database\Eloquent\Model; class PostsRelationManager extends HasManyRelationManager { use HasRelationManagerPermissions; protected static function getPermissions(): array { return [ 'viewForRecord' => fn (Model $ownerRecord) => $ownerRecord->user_id === auth()->id(), 'update' => function (Model $record) { return $record->user_id === auth()->id(); }, ]; } }
变更日志
请参阅 CHANGELOG 了解最近的变化。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全漏洞
请参阅 我们的安全策略 了解如何报告安全漏洞。
致谢
许可
MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。