This commit is contained in:
Andras Bacsai
2023-06-12 16:39:48 +02:00
parent 3e18f0f238
commit 18fde01ed5
5 changed files with 42 additions and 40 deletions

View File

@@ -15,37 +15,27 @@ use App\Models\User;
use App\Notifications\TransactionalEmails\ResetPasswordEmail;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Password;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Str;
use Laravel\Fortify\Contracts\FailedPasswordResetLinkRequestResponse;
use Laravel\Fortify\Contracts\SuccessfulPasswordResetLinkRequestResponse;
use Laravel\Fortify\Fortify;
Route::post('/forgot-password', function (Request $request) {
$request->validate([
'email' => 'required|email',
]);
$user = User::whereEmail($request->email)->first();
if (!$user->exists()) {
return back()->withErrors([
'email' => 'No user found with that email address.',
]);
}
if (is_transactional_emails_active()) {
$token = Str::random(64);
$token_exists = DB::table('password_reset_tokens')->whereEmail($user->email)->first();
if ($token_exists) {
return back()->withErrors([
'email' => 'Token already exists.',
]);
}
DB::table('password_reset_tokens')->insert([
'email' => $user->email,
'token' => $token,
'created_at' => now(),
]);
$user->notify(new ResetPasswordEmail($token));
} else {
// $user->sendPasswordResetNotification($user->createToken('password-reset')->plainTextToken);
if (!is_transactional_emails_active()) {
set_transanctional_email_settings();
$request->validate([Fortify::email() => 'required|email']);
$status = Password::broker(config('fortify.passwords'))->sendResetLink(
$request->only(Fortify::email())
);
return $status == Password::RESET_LINK_SENT
? app(SuccessfulPasswordResetLinkRequestResponse::class, ['status' => $status])
: app(FailedPasswordResetLinkRequestResponse::class, ['status' => $status]);
}
return response()->json(['message' => 'Transactional emails are not active'], 400);
})->name('password.forgot');
Route::prefix('magic')->middleware(['auth'])->group(function () {
Route::get('/servers', [MagicController::class, 'servers']);