App\Http\Controllers\AccountController::getStarted PHP Method

getStarted() public method

public getStarted ( ) : Illuminate\Http\RedirectResponse
return Illuminate\Http\RedirectResponse
    public function getStarted()
    {
        $user = false;
        $guestKey = Input::get('guest_key');
        // local storage key to login until registered
        $prevUserId = Session::pull(PREV_USER_ID);
        // last user id used to link to new account
        if (Auth::check()) {
            return Redirect::to('invoices/create');
        }
        if (!Utils::isNinja() && (Account::count() > 0 && !$prevUserId)) {
            return Redirect::to('/login');
        }
        if ($guestKey && !$prevUserId) {
            $user = User::where('password', '=', $guestKey)->first();
            if ($user && $user->registered) {
                return Redirect::to('/');
            }
        }
        if (!$user) {
            $account = $this->accountRepo->create();
            $user = $account->users()->first();
            if ($prevUserId) {
                $users = $this->accountRepo->associateAccounts($user->id, $prevUserId);
                Session::put(SESSION_USER_ACCOUNTS, $users);
            }
        }
        Auth::login($user, true);
        event(new UserSignedUp());
        $redirectTo = Input::get('redirect_to') ?: 'invoices/create';
        return Redirect::to($redirectTo)->with('sign_up', Input::get('sign_up'));
    }