- MoonShine v2.0+
composer require moonshine/permissions
php artisan migrate
- Change MoonShineUser model in app/moonshine.php
use MoonShine\Permissions\Models\MoonshineUser;
return [
// ...
'auth' => [
// ...
'providers' => [
'moonshine' => [
'driver' => 'eloquent',
'model' => MoonshineUser::class,
],
],
],
// ...
];
Or add trait HasMoonShinePermissions to user model
use MoonShine\Permissions\Traits\HasMoonShinePermissions;
class MoonShineUser extends Model
{
use HasMoonShinePermissions;
}
- Publish system resources
php artisan moonshine:publish resources
- Add trait WithPermissions to MoonShineUserResource
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'
);
}),
];
}