Benutzer Authorisieren und Rechte überprüfen mit Gate

Gate definieren und im AppServiceProvider ablegen

 

Gate::define('edit-job', function(User $user, Job $job){

return $job->employer->user->is($user);

});

 

Gate in der entsprechenden Funktion aufrufen

 

Gate::authorize('edit-job', $job);

 

Gate in der Route aufrufen via middleware

 

Route::get('/jobs', [JobController::class, 'index']);

Route::get('/jobs/create', [JobController::class, 'create'])->middleware('auth');

Route::post('/jobs', [JobController::class, 'store']);

Route::get('/jobs/{job}', [JobController::class, 'show']);

Route::get('/jobs/{job}/edit', [JobController::class, 'edit'])->middleware('auth')->can('edit-job', 'job');

Route::patch('/jobs/{job}', [JobController::class, 'update']);

Route::delete('/jobs/{job}', [JobController::class, 'destroy']);