Files
biiproject-kit-v1/app/Http/Controllers/Auth/PasswordResetLinkController.php

104 lines
3.0 KiB
PHP

<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Models\User;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Password;
use Illuminate\View\View;
class PasswordResetLinkController extends Controller
{
/**
* Display the password reset link request view.
*/
public function create(): View
{
return view('auth.forgot-password');
}
/**
* Handle an incoming password reset link request.
*/
public function store(Request $request): RedirectResponse
{
$request->validate([
'email' => ['required', 'email'],
]);
$user = User::where('email', $request->email)->first();
/**
* ==========================================
* ❌ BLOCK RESET PASSWORD SOCIAL USER
* ==========================================
*/
if ($user && $user->isSocialUser()) {
return back()
->withInput($request->only('email'))
->withErrors([
'email' => __('Please sign in using your Social Provider for this account.'),
]);
}
/**
* ==========================================
* ✅ USER MANUAL → NORMAL
* ==========================================
*/
$status = Password::sendResetLink(
$request->only('email')
);
return $status === Password::RESET_LINK_SENT
? back()->with('status', __($status))
: back()->withInput($request->only('email'))
->withErrors(['email' => __($status)]);
}
}
// namespace App\Http\Controllers\Auth;
// use App\Http\Controllers\Controller;
// use Illuminate\Http\RedirectResponse;
// use Illuminate\Http\Request;
// use Illuminate\Support\Facades\Password;
// use Illuminate\View\View;
// class PasswordResetLinkController extends Controller
// {
// /**
// * Display the password reset link request view.
// */
// public function create(): View
// {
// return view('auth.forgot-password');
// }
// /**
// * Handle an incoming password reset link request.
// *
// * @throws \Illuminate\Validation\ValidationException
// */
// public function store(Request $request): RedirectResponse
// {
// $request->validate([
// 'email' => ['required', 'email'],
// ]);
// // We will send the password reset link to this user. Once we have attempted
// // to send the link, we will examine the response then see the message we
// // need to show to the user. Finally, we'll send out a proper response.
// $status = Password::sendResetLink(
// $request->only('email')
// );
// return $status == Password::RESET_LINK_SENT
// ? back()->with('status', __($status))
// : back()->withInput($request->only('email'))
// ->withErrors(['email' => __($status)]);
// }
// }