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

46 lines
1.2 KiB
PHP
Raw Permalink Normal View History

<?php
namespace App\Http\Controllers;
use App\Models\Eleve;
use App\Models\User;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\View\View;
/**
* Thème clair/sombre et taille du texte (séparation vitrine/application,
* 2026-10-13) : un réglage réel, appliqué immédiatement, pas de données
* inventées.
*/
class ParametresController extends Controller
{
public function show(): View
{
$compte = $this->compteConnecte();
return view('parametres', [
'theme' => $compte->preferenceTheme(),
'tailleTexte' => $compte->preferenceTailleTexte(),
]);
}
public function update(Request $request): RedirectResponse
{
$donnees = $request->validate([
'theme' => ['required', 'in:'.implode(',', User::THEMES)],
'taille_texte' => ['required', 'in:'.implode(',', User::TAILLES_TEXTE)],
]);
$this->compteConnecte()->definirPreferences($donnees['theme'], $donnees['taille_texte']);
return back()->with('parametres_enregistres', true);
}
private function compteConnecte(): User|Eleve
{
return Auth::guard('web')->user() ?? Auth::guard('eleve')->user();
}
}