Skip to content

shevelev-anatoliy/permissions

 
 

Repository files navigation

MoonShine Permission

Requirements

  • MoonShine v2.0+

Installation

composer require moonshine/permissions

Run migration

php artisan migrate

Get started

  1. 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;
}
  1. Publish system resources
php artisan moonshine:publish resources
  1. Add trait WithPermissions to MoonShineUserResource
use MoonShine\Permissions\Traits\WithPermissions;

class MoonShineUserResource extends ModelResource
{
    use WithPermissions;

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

    // ...
}

Example of condition to display in menu

use MoonShine\MoonShineRequest;

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

About

MoonShine User Permissions

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 98.4%
  • Blade 1.6%