Я использую Laravel 7 и это мои маршруты:
api. php
Route::group(['middleware' => ['auth:api']], function () {
Route::get('posts/{id}', 'PostController@view');
Route::delete('posts/{id}', 'PostController@destroy');
Route::put('posts/{id}', 'PostController@update');
/**
*
* Continues similar CRUD requests ...
*
*/
Route::get('comments/{id}', 'CommentController@view');
Route::delete('comments/{id}', 'CommentController@destroy');
Route::put('comments/{id}', 'CommentController@update');
/**
*
* Continues similar CRUD requests ...
*
*/
});
Я хочу только владельца идентификатора поста / comment / ... чтобы иметь возможность вносить изменения в них.
например: $post->user_id === $user->id
или если пользователь не является администратором ($user->role == 'admin'
).
Нет смысла создавать несколько политик (PostPolicy
, CommentPolicy
, TagPolicy
...), чтобы они делали одно и то же.
Я ищу одну глобальную политику / Разработка промежуточного программного обеспечения для аутентификации этих похожих запросов.
Например: ->middleware('isAdminOrself')
Как я могу это сделать?