/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $user = $this->auth->getUser(); $confirmed = $user['confirmed']; if (isset($confirmed) && $confirmed == "0") { // If the user has not had an activation token set $confirmation_code = $user->confirmation_code; if (empty($confirmation_code)) { // generate a confirmation code $key = \Config::get('app.key'); do { $confirmation_code = hash_hmac('sha256', str_random(40), $key); } while (User::where('confirmation_code', $confirmation_code)->exists()); $user->confirmation_code = $confirmation_code; $user->save(); \Mail::send('emails.activate', ['token' => $confirmation_code, 'name' => $user->name], function ($message) use($user) { $message->from($user->email); $message->to("*****@*****.**", "Admin")->subject('Account Verification'); }); } \Session::put('alertMessage', 'Your email needs confirmation from admin!'); return redirect()->guest('auth/logout'); } return $next($request); }
public function confirm($confirmation_code) { if (!$confirmation_code) { return redirect()->to('auth/login')->with('alertMessage', 'The link is invaid'); } $user = User::where('confirmation_code', $confirmation_code)->first(); if (!$user) { return redirect()->to('auth/login')->with('alertMessage', 'No such user exists!'); } $user->confirmed = 1; $user->confirmation_code = null; $user->save(); \Mail::send('emails.confirm-user', ['name' => $user->name], function ($message) use($user) { $message->to($user->email, $user->name)->subject('Account Verification'); }); return redirect()->to('auth/login')->with('message', 'User is validated!'); }
/** * Create a new user instance after a valid registration. * * @param array $data * @return User */ protected function create(array $data) { return User::create(['name' => $data['name'], 'email' => $data['email'], 'password' => bcrypt($data['password'])]); }