首页 > 解决方案 > 在 laravel 中为每个 crud 操作定义权限的位置

问题描述

我用Laravel 6设计了一个商店,并使用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');

标签: laravellaravel-permission

解决方案


我建议使用Laravel 的 Model Policies,您可以在下面的链接中找到更多信息。 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


推荐阅读