Viewing File: /home/ubuntu/vedadeals-backend-base/app/Http/Controllers/Auth/ForgotPasswordController.php

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;

use Illuminate\Foundation\Auth\SendsPasswordResetEmails;

use Illuminate\Http\Request;

use App\Models\{ User, PasswordReset };

use DB, Hash, Setting, Validator, Exception;

use App\Services\{ EmailService };

use App\Http\Requests\Admin\Auth\{ ResetPasswordRequest };

class ForgotPasswordController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Password Reset Controller
    |--------------------------------------------------------------------------
    |
    | This controller is responsible for handling password reset emails and
    | includes a trait which assists in sending these notifications from
    | your application to your users. Feel free to explore this trait.
    |
    */

    use SendsPasswordResetEmails;

    /**
     * @method reset_password
     *
     * @uses to show reset password page
     *
     * @created
     *
     * @updated 
     *
     * @param object 
     * 
     * @return response return view page
     *
     **/

    public function reset_password() {

        return view('users.auth.reset_password');

    }


    /**
     * @method reset_password_update()
     *
     * @uses to reset the password
     *
     * @created
     *
     * @updated
     *
     * @param object $request - reset_token
     *
     * @return to login page
     */
    
    public function reset_password_update(ResetPasswordRequest $request) {

        try {

            DB::beginTransaction();

            $password_reset = PasswordReset::where('token', $request->reset_token)->first();
            
            $user = User::firstWhere('email', $password_reset->email);

            $user->password = Hash::make($request->password);

            $user->save();

            PasswordReset::where('email', $user->email)->delete();

            DB::commit();

            EmailService::send_reset_password_email($user);

            return view('users.pages.success')->with('message', tr('hello_user', $user->name));

        } catch(Exception $e) {

             DB::rollback();

            return redirect()->back()->withInput()->with('flash_error', $e->getMessage());
        }


   }
}
Back to Directory File Manager