Files
cesizen-individuel/backend/app/Http/Controllers/ProfilController.php
T
Azmog e3da625927 feat: initialisation complète du projet CESIZen
- Backend Laravel 11 (API REST, JWT auth, PostgreSQL)
- Frontend Next.js 14 (React, TypeScript, Tailwind CSS)
- Docker Compose (PostgreSQL, backend, frontend)
- Modules : auth, profil, tracker émotions, informations, admin
2026-03-11 16:27:01 +01:00

65 lines
1.7 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Http\Requests\UpdateProfilRequest;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
class ProfilController extends Controller
{
public function show(): JsonResponse
{
$utilisateur = auth()->user();
$utilisateur->load('role');
return response()->json($utilisateur);
}
public function update(UpdateProfilRequest $request): JsonResponse
{
$utilisateur = auth()->user();
$utilisateur->update($request->validated());
$utilisateur->load('role');
return response()->json([
'message' => 'Profil mis à jour',
'utilisateur' => $utilisateur,
]);
}
public function updatePassword(Request $request): JsonResponse
{
$request->validate([
'ancien_mot_de_passe' => 'required|string',
'password' => 'required|string|min:8|confirmed',
]);
$utilisateur = auth()->user();
if (!Hash::check($request->ancien_mot_de_passe, $utilisateur->password)) {
return response()->json([
'message' => 'L\'ancien mot de passe est incorrect',
], 422);
}
$utilisateur->update(['password' => $request->password]);
return response()->json([
'message' => 'Mot de passe modifié avec succès',
]);
}
public function destroy(): JsonResponse
{
$utilisateur = auth()->user();
$utilisateur->delete();
auth()->logout();
return response()->json([
'message' => 'Compte supprimé avec succès',
]);
}
}