fix(backend): durcissements (throttle register, garde auto-suppression admin, null-check saisie)
- throttle:10,1 sur l'inscription (anti-spam de comptes) - un admin ne peut plus désactiver/supprimer son propre compte (anti lock-out) - update/destroy saisie : abort 404 propre si l'utilisateur n'a pas de tracker Tests 15/15, Pint pass.
This commit is contained in:
@@ -86,6 +86,10 @@ class AdminUtilisateurController extends Controller
|
||||
|
||||
public function toggleActive(int $id): JsonResponse
|
||||
{
|
||||
if (auth()->id() === $id) {
|
||||
return response()->json(['message' => 'Vous ne pouvez pas désactiver votre propre compte.'], 422);
|
||||
}
|
||||
|
||||
$utilisateur = Utilisateur::findOrFail($id);
|
||||
$utilisateur->update(['est_actif' => ! $utilisateur->est_actif]);
|
||||
|
||||
@@ -97,6 +101,10 @@ class AdminUtilisateurController extends Controller
|
||||
|
||||
public function destroy(int $id): JsonResponse
|
||||
{
|
||||
if (auth()->id() === $id) {
|
||||
return response()->json(['message' => 'Vous ne pouvez pas supprimer votre propre compte administrateur.'], 422);
|
||||
}
|
||||
|
||||
$utilisateur = Utilisateur::findOrFail($id);
|
||||
$utilisateur->delete();
|
||||
|
||||
|
||||
@@ -53,7 +53,9 @@ class SaisieTrackerController extends Controller
|
||||
|
||||
public function update(StoreSaisieRequest $request, int $id): JsonResponse
|
||||
{
|
||||
$saisie = auth()->user()->tracker->saisies()->findOrFail($id);
|
||||
$tracker = auth()->user()->tracker;
|
||||
abort_unless($tracker, 404, 'Aucun tracker trouvé.');
|
||||
$saisie = $tracker->saisies()->findOrFail($id);
|
||||
$saisie->update($request->validated());
|
||||
$saisie->load('emotion');
|
||||
|
||||
@@ -65,7 +67,9 @@ class SaisieTrackerController extends Controller
|
||||
|
||||
public function destroy(int $id): JsonResponse
|
||||
{
|
||||
$saisie = auth()->user()->tracker->saisies()->findOrFail($id);
|
||||
$tracker = auth()->user()->tracker;
|
||||
abort_unless($tracker, 404, 'Aucun tracker trouvé.');
|
||||
$saisie = $tracker->saisies()->findOrFail($id);
|
||||
$saisie->delete();
|
||||
|
||||
return response()->json([
|
||||
|
||||
Reference in New Issue
Block a user