middleware('guest'); } /** * Show the application registration form. * * @return \Illuminate\Http\Response */ public function showRegistrationForm() { $first = ! Account::hasAny(); if (config('monica.disable_signup') == 'true' && ! $first) { abort(403, trans('auth.signup_disabled')); } return view('auth.register', ['first' => $first]); } /** * Get a validator for an incoming registration request. * * @param array $data * @return \Illuminate\Contracts\Validation\Validator */ protected function validator(array $data) { return Validator::make($data, [ 'last_name' => 'required|max:255', 'first_name' => 'required|max:255', 'email' => 'required|email|max:255|unique:users', 'password' => 'required|min:6|confirmed', 'policy' => 'required', ]); } /** * Create a new user instance after a valid registration. * * @param array * @return User */ protected function create(array $data) { $first = ! Account::hasAny(); $account = Account::createDefault( $data['first_name'], $data['last_name'], $data['email'], $data['password'], \Request::ip() ); $user = $account->users()->first(); if (! $first) { // send me an alert dispatch(new SendNewUserAlert($user)); } return $user; } /** * The user has been registered. * * @param \Illuminate\Http\Request $request * @param mixed $user * @return mixed */ protected function registered(Request $request, $user) { $first = Account::count() == 1; if (! config('monica.signup_double_optin') || $first) { // if signup_double_optin is disabled, skip the confirm email part $user->confirmation_code = null; $user->confirmed = true; $user->save(); $this->guard()->login($user); return redirect(route('login')); } } }