From f0fb7a26f3d848d9d666e598ac7f880c61c1d370 Mon Sep 17 00:00:00 2001 From: Corentin Huet Date: Thu, 8 Oct 2026 15:31:11 +0200 Subject: [PATCH] feat: :sparkles: restore soft-deleted user on create --- app/Http/Controllers/Bo/UserController.php | 3 ++- app/Http/Requests/Bo/Users/StoreUserRequest.php | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Bo/UserController.php b/app/Http/Controllers/Bo/UserController.php index b678ee2..a8e146b 100644 --- a/app/Http/Controllers/Bo/UserController.php +++ b/app/Http/Controllers/Bo/UserController.php @@ -73,8 +73,9 @@ class UserController extends Controller public function store(StoreUserRequest $request): \Illuminate\Http\RedirectResponse { return DB::transaction(function () use ($request) { - $user = new User(); + $user = User::query()->onlyTrashed()->where('email', $request->validated('email'))->first() ?? new User(); $user->fill($request->safe()->except('sites')); + $user->deleted_at = null; if ($user->saveOrFail()) { $user->sites()->attach(collect($request->validated('sites'))->pluck('id')); diff --git a/app/Http/Requests/Bo/Users/StoreUserRequest.php b/app/Http/Requests/Bo/Users/StoreUserRequest.php index 0482610..8efe14f 100644 --- a/app/Http/Requests/Bo/Users/StoreUserRequest.php +++ b/app/Http/Requests/Bo/Users/StoreUserRequest.php @@ -40,7 +40,11 @@ class StoreUserRequest extends FormRequest { return [ 'name' => 'required|string|min:3|max:255', - 'email' => 'email|required|unique:users,email', + 'email' => [ + 'email', + 'required', + Rule::unique('users', 'email')->whereNull('deleted_at') + ], 'role' => [ 'required', Rule::in(collect(RoleEnum::cases())->pluck('value')->all()),