Commit 165ddbb1 authored by Julien Sailly's avatar Julien Sailly
Browse files

feat: implementing authentification middleware

parent b4165fa9
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -3,6 +3,9 @@
namespace App\Exceptions;

use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Symfony\Component\HttpKernel\Exception\HttpException;
use Throwable;

class Handler extends ExceptionHandler
+2 −0
Original line number Diff line number Diff line
@@ -23,4 +23,6 @@ public function login(Request $request)
        session(['user' => $user]);
        return redirect('/');
    }


}
+24 −0
Original line number Diff line number Diff line
<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class rightChecker
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse)  $next
     * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
     */
    public function handle(Request $request, Closure $next): Mixed
    {
        if (!session()->has('user')) {
            abort(401);
        }
        return $next($request);
    }
}
+2 −2
Original line number Diff line number Diff line
@@ -15,8 +15,8 @@
|
*/

Route::middleware('auth:sanctum')->get('/dives/{id}/divers', [DivesAPI::class, 'getDivers']);
Route::middleware('App\Http\Middleware\rightChecker')->get('/dives/{id}/divers', [DivesAPI::class, 'getDivers']);

Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
Route::middleware('App\Http\Middleware\rightChecker')->get('/user', function (Request $request) {
    return $request->user();
});
+19 −15
Original line number Diff line number Diff line
@@ -24,46 +24,48 @@
use App\Models\Prerogative;


Route::get('/login', function ()
{
Route::get('/login', function () {
    return view('login', ['wrongPassword' => false]);
})->name('login');

Route::post('/login', [AuthController::class, 'login']);

Route::get('/', function ()
{
Route::get('/', function () {
    return view('welcome');
})->name('homepage');

Route::get('/logout', function ()
{
Route::get('/logout', function () {
    session()->flush();
    return redirect('/');
})->name('logout');


Route::middleware('auth:sanctum')->get('/dives', [DivingSignUpController::class, 'show'])->name('dives');
Route::middleware('App\Http\Middleware\rightChecker')
    ->get('/dives', [DivingSignUpController::class, 'show'])
    ->name('dives');

Route::get('/test', function()
{
Route::get('/test', function() {
    return view('test', ['user' => User::find(1)]);
});

Route::get('/dives/list-divers/{id}', function($id){
Route::middleware('App\Http\Middleware\rightChecker')
    ->get('/dives/list-divers/{id}', function($id){
    return view('divingSessions.showParticipants', [
        'users' => DivingSession::find($id)->getParticipants()
    ]);
});

Route::get('/dives/{ds_code}', [DivingSignUpController::class, 'index']);
Route::middleware('App\Http\Middleware\rightChecker')
    ->get('/dives/{ds_code}', [DivingSignUpController::class, 'index']);

Route::get('/create/dive', function()
Route::middleware('App\Http\Middleware\rightChecker')
    ->get('/create/dive', function()
{
    return view('create_dive', ['locations' => DivingLocation::all(),  'boats' => Boat::all(), 'levels' => Prerogative::all(), 'users' => User::all()]);
});

Route::post('/create/dive', function(Request $request)
Route::middleware('App\Http\Middleware\rightChecker')
    ->post('/create/dive', function(Request $request)
{
    DiveSessionCreation::add($request);
    return redirect('/');
@@ -73,7 +75,8 @@
    return view('drag_and_drop');
});

Route::get('/dive/update/{id}', function($id){
Route::middleware('App\Http\Middleware\rightChecker')
    ->get('/dive/update/{id}', function($id){
    return view('update_dive', ['dive' => DivingSession::find($id),
                'locations' => DivingLocation::all(),
                'boats' => Boat::all(),
@@ -81,7 +84,8 @@
                'users' => User::all()]);
});

Route::post('/dive/disable/{id}', function ($id){
Route::middleware('App\Http\Middleware\rightChecker')
    ->post('/dive/disable/{id}', function ($id){
    DivingSession::find($id)->disable();
    return redirect('/');
});