Где определить разрешения для каждого грубого действия в laravel

Я разработал магазин с Laravel 6 и использовал laravel-permission 3 для управления пользователями. Я хотел бы ограничить каждое грубое действие определенным разрешением (например, добавить продукт, удалить продукт). Краткое описание использования подстановочных разрешений приведено в Spatie, но я не уверен в этом. Я не знаю, где лучше определить эти ограничения.

Вот пример маршрута для создания и редактирования продукта и его промежуточного программного обеспечения (ограничения по разрешениям).

Route::get('/create','Controller@create')->name('create')->middleware('permission:add product');
Route::post('/store', 'Controller@store')->name('store')->middleware('permission:add product');
Route::get('/{product}/edit', 'Controller@edit')->name('edit')->middleware('permission:edit product');
Route::patch('/{product}/update', 'Controller@update')->name('update')->middleware('permission:edit product');

person BABAK ASHRAFI    schedule 11.04.2020    source источник


Ответы (1)


Я предлагаю использовать политики модели Laravel, вы можете найти дополнительную информацию по ссылке ниже. https://docs.spatie.be/laravel-permission/v3/best-practices/using-policies/

Кроме того, вы можете найти пример реализации политики модели с помощью этого пакета разрешений Laravel в этом демонстрационном приложении: https://github.com/drbyte/spatie-permissions-demo/blob/master/app/Policies/PostPolicy.php

person Morteza Asadi    schedule 17.04.2020