Активные разделы
Вы просматриваете документацию старой версии MoonShine. Рассмотрите возможность обновления вашего проекта до MoonShine 2.x.
Часто бывает, что необходимо создать ресурс, в котором будет исключена возможность удалять,
или добавлять, или редактировать. И здесь речь не об авторизации, а о глобальном исключении этих разделов.
Делается это крайне просто за счет свойства activeActions
в ресурсе
namespace MoonShine\Resources; class PostResource extends Resource{ public static string $model = App\Models\Post::class; public static string $title = 'Articles'; public static array $activeActions = ['create', 'show', 'edit', 'delete']; //...}
Достаточно исключить лишний
public static array $activeActions = ['create'];
Еще можно воспользоваться методом getActiveActions()
и задать свою логику для доступных разделов
namespace MoonShine\Resources; class PostResource extends Resource{ public static string $model = App\Models\Post::class; public static string $title = 'Articles'; public static array $activeActions = ['create', 'show', 'edit']; //... public function getActiveActions(): array { if (auth()->id() === $this->getItem()?->author_id) { return array_merge(static::$activeActions, ['delete']); } return static::$activeActions; } }