Paillasse/portail/app/Http/Controllers/RaccourciController.php

52 lines
1.7 KiB
PHP
Raw Normal View History

<?php
namespace App\Http\Controllers;
use App\Models\Eleve;
use App\Models\Raccourci;
use App\Models\User;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
/**
* « Mes raccourcis » dans la barre latérale (séparation vitrine/application,
* 2026-10-13) : le prof ou l'élève épingle une page qu'il visite déjà.
*/
class RaccourciController extends Controller
{
public function store(Request $request): RedirectResponse
{
$donnees = $request->validate([
'label' => ['required', 'string', 'max:80'],
'url' => ['required', 'string', 'max:500'],
]);
$compte = Auth::guard('web')->user() ?? Auth::guard('eleve')->user();
$ordre = Raccourci::when($compte instanceof User, fn ($q) => $q->where('user_id', $compte->id))
->when($compte instanceof Eleve, fn ($q) => $q->where('eleve_id', $compte->id))
->max('ordre');
Raccourci::create([
'user_id' => $compte instanceof User ? $compte->id : null,
'eleve_id' => $compte instanceof Eleve ? $compte->id : null,
'label' => $donnees['label'],
'url' => $donnees['url'],
'ordre' => ($ordre ?? 0) + 1,
]);
return back()->with('raccourci_ajoute', true);
}
public function destroy(Raccourci $raccourci): RedirectResponse
{
$compte = Auth::guard('web')->user() ?? Auth::guard('eleve')->user();
$proprietaire = $compte instanceof User ? $raccourci->user_id === $compte->id : $raccourci->eleve_id === $compte->id;
abort_unless($proprietaire, 403);
$raccourci->delete();
return back();
}
}