validate($request, [ 'name' => 'required', 'email' => 'required|email', 'password' => 'required|min:6', ]); User::create([ 'name' => $request->name, 'email' => $request->email, 'password' => Hash::make($request->password), ]); } /** * Login page * * @param NA * @return view */ public function login() { return view('auth.login'); } /** * User Login * * @param request * @return response */ public function loginValidate(Request $request) { $this->validate($request, [ 'email' => 'required|email', 'password' => 'required|min:6', ]); $user = User::where('email', $request->email)->first(); if ($user) { if (Hash::check($request->password, $user->password)) { return back()->with('success', 'Success! You are logged in'); } return back()->with('failed', 'Failed! Invalid password'); } return back()->with('failed', 'Failed! Invalid email'); } /** * Forgot password * * @param NA * @return view */ public function forgotPassword() { return view('auth.forgot-password'); } /** * Validate token for forgot password * * @param token * @return view */ public function forgotPasswordValidate($token) { $user = User::where('token', $token)->where('is_verified', 0)->first(); // dd($user); if ($user) { $email = $user->email; return view('auth.change-password', compact('email')); } return redirect()->route('forgot-password')->with('failed', 'Password reset link is expired'); } /** * Reset password * * @param request * @return response */ public function resetPassword(Request $request) { $this->validate($request, [ 'email' => 'required|email', ]); $user = User::where('email', $request->email)->first(); // dd($user); if (! $user) { return back()->with('failed', 'Gagal! Alamat Ini Belum Didaftarkan.'); } $token = Str::random(60); $user['token'] = $token; $user['is_verified'] = 0; $user->save(); $resetUrl = url('/forgot-password/' . $token); Mail::to($request->email)->send(new ResetPassword($user->name, $resetUrl)); Mail::to($request->email)->send(new ResetPassword($user->name, $resetUrl)); if (Mail::failures() != 0) { return back()->with('success', 'Berjaya DiHantar! Pautan Lupa Katalaluan Telah Dihantarkan Kepada Alamat Emel Anda.'); } return back()->with('failed', 'Failed! there is some issue with email provider'); } /** * Change password * * @param request * @return response */ public function updatePassword(Request $request) { $this->validate($request, [ 'email' => 'required', 'password' => 'required|min:6', 'confirm_password' => 'required|same:password', ]); $user = User::where('email', $request->email)->first(); if ($user) { $user['is_verified'] = 0; $user['token'] = ''; $user['password'] = Hash::make($request->password); $user->save(); // dd($user->user_type); if ($user->user_type == 2) { return redirect()->to(config('app.app_pembida')); } return redirect()->route('login')->with('success', 'Berjaya! Katalaluan Anda Telah Didaftarkan.'); } return redirect()->route('forgot-password')->with('failed', 'Gadal! Sila Cuba Lagi...'); } public function termasyarat() { return view('auth.termasyarat'); } }