← All plugins
MoonShine Permission
MoonShine Permission - это пакет для системы управления правами доступа в админ-панели MoonShine v2.0+, который позволяет гибко настраивать разрешения для пользователей через встроенные трейты и модели, а также контролировать доступ к различным разделам админки.
MoonShine Permission
Requirements
Installation
composer require moonshine/permissions
composer require moonshine/permissions
composer require moonshine/permissions
composer require moonshine/permissions
composer require moonshine/permissions
Run migration
php artisan migrate
php artisan migrate
php artisan migrate
php artisan migrate
php artisan migrate
Get started
- Change MoonShineUser model in config/moonshine.php
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,
],
],
],
// ...
];
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,
],
],
],
// ...
];
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;
}
use MoonShine\Permissions\Traits\HasMoonShinePermissions;
class MoonShineUser extends Model
{
use HasMoonShinePermissions;
}
use MoonShine\Permissions\Traits\HasMoonShinePermissions;
class MoonShineUser extends Model
{
use HasMoonShinePermissions;
}
use MoonShine\Permissions\Traits\HasMoonShinePermissions;
class MoonShineUser extends Model
{
use HasMoonShinePermissions;
}
- Publish system resources
php artisan moonshine:publish
php artisan moonshine:publish
php artisan moonshine:publish
php artisan moonshine:publish
php artisan moonshine:publish
- 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\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;
// ...
}
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\MoonShineRequest;
protected function menu(): array
{
return [
MenuItem::make('Posts', new PostResource())
->canSee(function (MoonShineRequest $request) {
return $request->user()->isHavePermission(
PostResource::class,
'view'
);
}),
];
}
use MoonShine\MoonShineRequest;
protected function menu(): array
{
return [
MenuItem::make('Posts', new PostResource())
->canSee(function (MoonShineRequest $request) {
return $request->user()->isHavePermission(
PostResource::class,
'view'
);
}),
];
}
use MoonShine\MoonShineRequest;
protected function menu(): array
{
return [
MenuItem::make('Posts', new PostResource())
->canSee(function (MoonShineRequest $request) {
return $request->user()->isHavePermission(
PostResource::class,
'view'
);
}),
];
}
use MoonShine\MoonShineRequest;
protected function menu(): array
{
return [
MenuItem::make('Posts', new PostResource())
->canSee(function (MoonShineRequest $request) {
return $request->user()->isHavePermission(
PostResource::class,
'view'
);
}),
];
}
use MoonShine\MoonShineRequest;
protected function menu(): array
{
return [
MenuItem::make('Posts', new PostResource())
->canSee(function (MoonShineRequest $request) {
return $request->user()->isHavePermission(
PostResource::class,
'view'
);
}),
];
}