在 laravel 中为每个 crud 操作定义权限的位置

Where to define permissions for every crud action in laravel

我用 Laravel 6 ,and used laravel-permission 3 设计了一个商店用于用户管理。我想通过明确的许可(例如添加产品、删除产品)来限制每个 crud 操作。 在 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');

我建议使用 Laravel 的模型策略,您可以在下面的 link 中找到更多信息。 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