← All plugins

MoonShine Permission

Made by the authors of MoonShine

MoonShine Permission - это пакет для системы управления правами доступа в админ-панели MoonShine v2.0+, который позволяет гибко настраивать разрешения для пользователей через встроенные трейты и модели, а также контролировать доступ к различным разделам админки.

Rating
Downloads
6614
Version
3.0.0
Last updated
25.10.2025
MoonShine version
v2, v3, v4
Github stars
9
MoonShine Software
Author
MoonShine Software

MoonShine Permission

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
composer require moonshine/permissions

Run migrations

php artisan migrate
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,
],
],
],
];
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;
}
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;
 
// ...
}
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)),
];
}
use MoonShine\Support\Enums\Ability;
 
protected function menu(): array
{
return [
MenuItem::make('Posts', PostResource::class)
->canSee(fn () => auth()->user()->isHavePermission(PostResource::class, Ability::VIEW)),
];
}