Wip
This commit is contained in:
@@ -9,6 +9,7 @@ use App\Rules\PhoneCodeVerification;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class ResetPasswordController extends Controller
|
||||
{
|
||||
@@ -27,20 +28,38 @@ class ResetPasswordController extends Controller
|
||||
{
|
||||
$request->validate([
|
||||
'username' => ['required', 'string', 'max:250', 'exists:users,username'],
|
||||
'verification' => ['nullable', 'integer', 'digits:5'],
|
||||
'password' => ['bail', 'nullable', 'string', 'min:8', 'confirmed'],
|
||||
'verification' => ['nullable', 'integer', 'digits:5', Rule::requiredIf(fn () => $request->filled('step-verification'))],
|
||||
'step-sms' => ['nullable'],
|
||||
'step-verification' => ['nullable'],
|
||||
'step-password' => ['nullable'],
|
||||
'password' => ['bail', 'nullable', 'string', 'min:8', 'confirmed', Rule::requiredIf(fn () => $request->filled('step-password'))],
|
||||
]);
|
||||
|
||||
if ($request->filled('verification')) {
|
||||
return $this->verify();
|
||||
}
|
||||
|
||||
$user = User::where('username', $request->username)->first();
|
||||
|
||||
// sendSMSVerification($user->phone);
|
||||
$phone_code = rand(10000, 99999);
|
||||
$verification = Verification::where(['username' => $user->phone])->first();
|
||||
$verification ? $verification->update(['code' => $phone_code]) : Verification::create(['username' => $user->phone, 'code' => $phone_code]);
|
||||
if ($request->filled('step-sms') && $request->isNotFilled('step-verification') && $request->isNotFilled('step-password')) {
|
||||
return $this->sendVerification($request, $user);
|
||||
}
|
||||
|
||||
if ($request->filled('step-verification') && $request->isNotFilled('step-password')) {
|
||||
return $this->verify($request, $user);
|
||||
}
|
||||
|
||||
if ($request->filled('step-password')) {
|
||||
return $this->updatePassword($request, $user);
|
||||
}
|
||||
|
||||
return response()->json();
|
||||
}
|
||||
|
||||
/**
|
||||
* Send verification code
|
||||
* @param Request $request
|
||||
* @param User $user
|
||||
*/
|
||||
public function sendVerification(Request $request, User $user): JsonResponse
|
||||
{
|
||||
sendSMSVerification($user->phone);
|
||||
|
||||
return response()->json([
|
||||
'step' => 1,
|
||||
@@ -50,10 +69,12 @@ class ResetPasswordController extends Controller
|
||||
|
||||
/**
|
||||
* Verify phone number
|
||||
* @param Request $request
|
||||
* @param User $user
|
||||
*/
|
||||
public function verify(): JsonResponse
|
||||
public function verify(Request $request, User $user): JsonResponse
|
||||
{
|
||||
$verification = Verification::where('username', $request->username)
|
||||
$verification = Verification::where('username', $user->phone)
|
||||
->where('code', $request->verification)
|
||||
->first();
|
||||
|
||||
@@ -70,7 +91,22 @@ class ResetPasswordController extends Controller
|
||||
|
||||
return response()->json([
|
||||
'step' => 2,
|
||||
'message' => __("Now you can set your password, but please make sure that you dont forget it")
|
||||
'message' => __("Now you can set your password, but please make sure that you don't forget it!")
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update password
|
||||
* @param Request $request
|
||||
* @param User $user
|
||||
*/
|
||||
public function updatePassword(Request $request, User $user): JsonResponse
|
||||
{
|
||||
$user->update(['password' => bcrypt($request->password)]);
|
||||
|
||||
return response()->json([
|
||||
'step' => 3,
|
||||
'message' => __('Your password has been updated')
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user