На моем веб-сайте есть таблица users
, и пользователю разрешено обновлять пользователя, если он является администратором или его/ее учетной записью. Я могу поместить это правило в промежуточное ПО и наложить его на маршрут, но я хочу создать отдельные промежуточные ПО и OR
среди них. Могу ли я сделать это?
Следующий код
Route::group(['middleware' => ['admin','Owner']],
function () {
Route::resource('roles', 'RoleController');
Route::resource('locations', 'LocationController');
Route::resource('recipients', 'RecipientController');
Route::resource('classifications', 'ClassificationController');
});
имеет AND
поведение. Я думаю, что это можно сделать, используя некоторый оператор if ... else ...
внутри web.php
или UserController
, но мне нужно знать, есть ли другой выход.
заранее спасибо
Обновить
Вот промежуточное ПО владельца
class OwnerMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next, $id)
{
if(Auth::guest())
return abort(403, 'Access Denied');
if(Auth::user()->id != $id)
return abort(403, 'Access Denied');
return $next($request);
}
}
Затем я передаю ему параметр $id
.