moonshine/permissions

User permissions for MoonShine

Installs: 6 481

Dependents: 0

Suggesters: 0

Security: 0

Stars: 9

Watchers: 2

Forks: 4

Open Issues: 1

pkg:composer/moonshine/permissions

3.0.0 2025-10-25 17:25 UTC

This package is auto-updated.

Last update: 2025-11-11 10:19:26 UTC


README

Requirements

  • MoonShine v4.0+

Support MoonShine versions

MoonShine ChangeLog
2.0+ 1.0+
3.0+ 2.0+
4.0+ 3.0+

Installation

composer require moonshine/permissions

Run migrations

php artisan migrate

Get started

  1. Change MoonshineUser model in config/moonshine.php or in MoonShineServiceProvider.
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. Add trait WithPermissions to MoonShineUserResource and change $model.
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\Support\Enums\Ability;

protected function menu(): array
{
    return [
        MenuItem::make('Posts', PostResource::class)
            ->canSee(fn () => auth()->user()->isHavePermission(PostResource::class, Ability::VIEW)),
    ];
}