Я создал промежуточное программное обеспечение, которое проверяет, если пользователь имеет право выполнить действие и добавил промежуточное программное обеспечение для маршрутов, которые я хочу защитить, как это:В Laravel, должен ли я проверить разрешение на контроллер, если вы уже проверяете промежуточное ПО?
// VerifyPermission middleware
class VerifyPermission {
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param $permission
* @return mixed
*/
public function handle($request, Closure $next, $permission)
{
$user = auth()->user();
if (auth()->check() && $user->hasPermission($permission))
{
return $next($request);
}
return redirect('/');
}
}
// Routes
Route::patch('company/{id}', ['as' => 'updateCompany',
'uses' => '[email protected]',
'middleware' => 'permission:manage_company']
);
Моего вопрос, является необходимым, чтобы сделать еще один чек на updateCompany
или проверка промежуточного ПО достаточна?
public function updateCompany()
{
if(Auth::user()->hasPermission('manage_company'))
{
// Updates Company
}
return abort(403, "Unauthorized");
}
Действие контроллера будет выполняться после промежуточного программного обеспечения. Так что это не нужно. – Szenis