【发布时间】:2018-03-06 22:55:40
【问题描述】:
我正在关注有关 Laravel 门的教程,其中允许具有“更新帖子”权限的用户编辑数据库中的任何帖子。此外,任何用户,无论权限如何,都可以编辑他们提交的帖子。
app/Providers/AuthServiceProvider.php:
Gate::define('update-post', function ($user, \App\Post $post) {
return $user->hasAccess(['update-post']) or $user->id == $post->user_id;
});
路由/web.php:
Route::get('/edit/{post}', 'PostController@edit')
->name('edit_post')
->middleware('can:update-post,post');
Route::post('/edit/{post}', 'PostController@update')
->name('update_post')
->middleware('can:update-post,post');
我正在寻找一种添加新权限的方法,比如“update-own-post”,只有拥有该权限的用户才能编辑自己的帖子。
因此,例如版主将拥有允许他们编辑所有帖子的“更新帖子”权限。普通用户只有在被分配了新权限“update-own-post”时才能编辑自己的帖子,但不是当前实施的每个用户。
在我的代码中实现此更改的最佳方法是什么?
【问题讨论】:
标签: php laravel permissions roles