moonshine/permissions

MoonShine 用户权限

1.0.2 2023-12-22 15:23 UTC

This package is auto-updated.

Last update: 2024-09-10 09:28:29 UTC


README

要求

  • MoonShine v2.0+

安装

composer require moonshine/permissions

运行迁移

php artisan migrate

开始使用

  1. 在config/moonshine.php中更改MoonShineUser模型
use MoonShine\Permissions\Models\MoonshineUser;

return [
    // ...
    'auth' => [
        // ...
        'providers' => [
            'moonshine' => [
                'driver' => 'eloquent',
                'model' => MoonshineUser::class,
            ],
        ],
    ],
    // ...
];

或者在用户模型中添加HasMoonShinePermissions特质

use MoonShine\Permissions\Traits\HasMoonShinePermissions;

class MoonShineUser extends Model
{
    use HasMoonShinePermissions;
}
  1. 发布系统资源
php artisan moonshine:publish
  1. 为MoonShineUserResource添加WithPermissions特质
use MoonShine\Permissions\Traits\WithPermissions;

class MoonShineUserResource extends ModelResource
{
    use WithPermissions;

    public string $model = MoonShine\Permissions\Models\MoonshineUser::class;

    // ...
}

菜单中显示条件的示例

use MoonShine\MoonShineRequest;

protected function menu(): array
{
    return [
        MenuItem::make('Posts', new PostResource())
            ->canSee(function (MoonShineRequest $request) {
                return $request->user()->isHavePermission(
                    PostResource::class,
                    'view'
                );
            }),
    ];
}