/** * Validates and Updates user email. * * @return Response */ public function postUpdateEmail(Request $request) { $validator = Validator::make($request->all(), array('current_password' => 'required|checkauth', 'email' => 'required|confirmed|email|unique:users|max:255', 'email_confirmation' => 'required')); if ($validator->fails()) { $request->session()->keep(['errors']); return redirect()->route('user::update_email_get')->withErrors($validator); } else { $emailChange = new UserEmailChange(); $emailChange->user_id = Auth::user()->id; $emailChange->email = $request->input('email'); $emailChange->token = str_random(); $emailChange->save(); // Confirm email address $user = Auth::user(); Mail::send('emails/user/register', array('emailChange' => $emailChange), function ($message) use($emailChange, $user) { $message->to($emailChange->email, $user->first_name)->subject('New email address confirmation'); }); $this->setFlashMessage('success', 'Email address updated.'); } return redirect()->route('home'); }