Авторизация

Вы просматриваете документацию старой версии MoonShine. Рассмотрите возможность обновления вашего проекта до MoonShine 2.x.

Мы не отходим от концепции Laravel и с помощью Laravel policy можем работать с правами доступа в рамках админ-панели MoonShine

В ресурс-контроллерах MoonShine каждый метод будет проверяться на наличие прав. Если возникают трудности, то ознакомьтесь с официально документацией Laravel

По умолчанию для ресурсов проверка прав отключена. Чтобы включить, необходимо добавить свойство $withPolicy

Доступные методы Policy:

  • viewAny
  • view
  • create
  • update
  • delete
  • massDelete
  • restore
  • forceDelete
namespace App\Policies;
 
use Illuminate\Auth\Access\HandlesAuthorization;
use MoonShine\Models\MoonshineUser;
use App\Models\Post;
 
class PostPolicy
{
use HandlesAuthorization;
 
public function viewAny(MoonshineUser $user)
{
//
}
 
public function view(MoonshineUser $user, Post $model)
{
//
}
 
public function create(MoonshineUser $user)
{
//
}
 
public function update(MoonshineUser $user, Post $model)
{
//
}
 
public function delete(MoonshineUser $user, Post $model)
{
//
}
 
public function massDelete(MoonshineUser $user)
{
//
}
 
public function restore(MoonshineUser $user, Post $model)
{
//
}
 
public function forceDelete(MoonshineUser $user, Post $model)
{
//
}
}
namespace MoonShine\Resources;
 
use MoonShine\Models\MoonshineUser;
 
class PostResource extends Resource
{
//...
 
public static bool $withPolicy = true;
 
//...
}