You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
50 lines
1.5 KiB
50 lines
1.5 KiB
<?php |
|
|
|
namespace App\Http\Controllers\Auth; |
|
|
|
use App\Http\Controllers\Controller; |
|
use App\Models\User; |
|
use App\Utils\Mail; |
|
use App\Utils\Token; |
|
use Illuminate\Http\RedirectResponse; |
|
use Illuminate\Http\Request; |
|
use Illuminate\Support\Facades\DB; |
|
use Illuminate\Support\Facades\Password; |
|
use Illuminate\Validation\ValidationException; |
|
use Inertia\Inertia; |
|
use Inertia\Response; |
|
|
|
class PasswordResetLinkController extends Controller |
|
{ |
|
/** |
|
* Display the password reset link request view. |
|
*/ |
|
public function create(): Response |
|
{ |
|
return Inertia::render('Auth/ForgotPassword', [ |
|
'status' => session('status'), |
|
]); |
|
} |
|
|
|
/** |
|
* Handle an incoming password reset link request. |
|
* |
|
* @throws \Illuminate\Validation\ValidationException |
|
*/ |
|
public function store(Request $request): RedirectResponse |
|
{ |
|
$request->validate([ |
|
"email" => "required|string|email|max:255" |
|
]); |
|
$user = User::where("email", $request->email)->firstOrFail(); |
|
DB::table("password_reset_tokens")->where("email", $user->email)->delete(); |
|
$token = Token::create($user->email); |
|
Mail::send((object)[ |
|
"user" => $user, |
|
"template" => "email.auth.reset", |
|
"data" => [ "token" => $token ], |
|
"subject" => "Mot de passe oublié." |
|
]); |
|
return back()->with('status',"Nous vous avons envoyé par email le lien de réinitialisation du mot de passe !"); |
|
} |
|
}
|
|
|