Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
forbidals
/
gambling
/
app
/
Http
/
Controllers
/
User
/
Auth
:
ForgotPasswordController.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace App\Http\Controllers\User\Auth; use App\Http\Controllers\Controller; use App\Models\PasswordReset; use App\Models\User; use Illuminate\Http\Request; class ForgotPasswordController extends Controller { public function showLinkRequestForm() { $pageTitle = "Account Recovery"; return view('Template::user.auth.passwords.email', compact('pageTitle')); } public function sendResetCodeEmail(Request $request) { $request->validate([ 'value' => 'required', ]); if (!verifyCaptcha()) { $notify[] = ['error', 'Invalid captcha provided']; return back()->withNotify($notify); } $fieldType = $this->findFieldType(); $user = User::where($fieldType, $request->value)->first(); if (!$user) { $notify[] = ['error', 'The account could not be found']; return back()->withNotify($notify); } PasswordReset::where('email', $user->email)->delete(); $code = verificationCode(6); $password = new PasswordReset(); $password->email = $user->email; $password->token = $code; $password->created_at = \Carbon\Carbon::now(); $password->save(); $userBrowserInfo = osBrowser(); notify($user, 'PASS_RESET_CODE', [ 'code' => $code, 'operating_system' => isset($userBrowserInfo['os_platform']) ? $userBrowserInfo['os_platform'] : '', 'browser' => isset($userBrowserInfo['browser']) ? $userBrowserInfo['browser'] : '', 'ip' => getRealIp(), 'time' => date('Y-m-d h:i:s A'), ], ['email']); $email = $user->email; session()->put('pass_res_mail', $email); $notify[] = ['success', 'Password reset email sent successfully']; return to_route('user.password.code.verify')->withNotify($notify); } public function findFieldType() { $input = request()->input('value'); $fieldType = filter_var($input, FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; request()->merge([$fieldType => $input]); return $fieldType; } public function codeVerify(Request $request) { $pageTitle = 'Verify Email'; $email = $request->session()->get('pass_res_mail'); if (!$email) { $notify[] = ['error', 'Oops! session expired']; return to_route('user.password.request')->withNotify($notify); } return view('Template::user.auth.passwords.code_verify', compact('pageTitle', 'email')); } public function verifyCode(Request $request) { $request->validate([ 'code' => 'required', 'email' => 'required', ]); $code = str_replace(' ', '', $request->code); if (PasswordReset::where('token', $code)->where('email', $request->email)->count() != 1) { $notify[] = ['error', 'Verification code doesn\'t match']; return to_route('user.password.request')->withNotify($notify); } $notify[] = ['success', 'You can change your password']; session()->flash('fpass_email', $request->email); return to_route('user.password.reset', $code)->withNotify($notify); } }