Exemplo n.º 1
0
def signup():
    """Handle user signup.

    Create new user and add to DB. Redirect to home page.

    If form not valid, present form.

    If there already is a user with that username: flash message
    and re-present form.
    """
    if CURR_USER_KEY in session:
        del session[CURR_USER_KEY]
    form = UserAddForm()

    if form.validate_on_submit():
        try:
            user = User.signup(username=form.username.data,
                               password=form.password.data,
                               email=form.email.data)
            db.session.commit()

        ###########
        # This is where I need to differentiate between which field requirements are being violated
        # (i.e. username, email, (more?))
        except IntegrityError as e:
            flash("Username already taken", 'danger')
            return render_template('users/signup.html', form=form)

        do_login(user)

        return redirect("/")

    else:
        return render_template('users/signup.html', form=form)
Exemplo n.º 2
0
def signup():
    """Handle user signup.

    Create new user and add to DB. Redirect to home page.

    If form not valid, present form.

    If the there already is a user with that username: flash message
    and re-present form.
    """

    form = UserAddForm()

    if form.validate_on_submit():
        try:
            user = User.signup(
                username=form.data['username'],
                password=form.data['password'],
                email=form.data['email'],
                image_url=form.data['image_url'] or
                'https://t3.ftcdn.net/jpg/00/64/67/52/240_F_64675209_7ve2XQANuzuHjMZXP3aIYIpsDKEbF5dD.jpg',
            )
            db.session.commit()

        except IntegrityError as e:
            flash("Username already taken", 'danger')
            return render_template('users/signup.html', form=form)

        do_login(user)

        return redirect("/")

    else:
        return render_template('users/signup.html', form=form)
Exemplo n.º 3
0
def signup():
    """Handle user signup.

    Create new user and add to DB. Redirect to home page.

    If form not valid, present form.

    If the there already is a user with that username: flash message
    and re-present form.
    """

    form = UserAddForm()

    if form.validate_on_submit():
        try:
            user = User.signup(
                username=form.data["username"],
                password=form.data["password"],
                email=form.data["email"],
                image_url=form.data["image_url"],
            )
            db.session.commit()

        except IntegrityError as e:
            flash("Username already taken", "danger")
            return render_template("users/signup.html", form=form)

        do_login(user)

        return redirect("/")

    else:
        return render_template("users/signup.html", form=form)
Exemplo n.º 4
0
def signup():
    """Handle user signup

    Create new user and add to DB, redirect to homepage

    If form not valid re-present form with error messages

    if user already exists with that username: flash message and re-present form"""
    if CURR_USER_KEY in session:
        del session[CURR_USER_KEY]

    form = UserAddForm()

    if form.validate_on_submit():
        try:
            user = User.signup(username=form.username.data,
                               password=form.password.data,
                               first_name=form.first_name.data,
                               last_name=form.last_name.data,
                               email=form.email.data,
                               summoner_name=form.summoner_name.data)

            db.session.commit()
        except IntegrityError:
            flash("Username already taken", "danger")
            return render_template('users/signup.html', form=form)

        do_login(user)
        return redirect('/')
    else:
        return render_template('users/signup.html', form=form)
Exemplo n.º 5
0
def profile():
    """Update profile for current user."""

    if not g.user:
        flash("Access unauthorized.", "danger")
        return redirect("/")

    form = UserAddForm(obj=g.user)
    user_id = g.user.id

    if form.validate_on_submit():
        g.user.username = form.username.data
        g.user.email = form.email.data
        g.user.image_url = form.image_url.data
        g.user.header_image_url = form.header_image_url.data
        g.user.bio = form.bio.data
        g.user.location = form.location.data
        if User.authenticate(form.username.data, form.password.data) != g.user:
            flash("Incorrect password", "danger")
            return redirect("/")

        db.session.add(g.user)
        db.session.commit()

        return redirect(f"/users/{g.user.id}")
    return render_template("/users/edit.html", form=form, user_id=user_id)
Exemplo n.º 6
0
def profile():
    """Update profile for current user."""
    if not g.user:
        flash("Access Unauthorized,", "danger")
        return redirect('/')

    form = UserAddForm()
    user_info = User.query.get_or_404(session[CURR_USER_KEY])
    back_up = User.query.get_or_404(session[CURR_USER_KEY])

    if form.validate_on_submit():

        user_info.username = form.username.data
        user_info.email = form.email.data
        user_info.image_url = form.image_url.data or back_up.image_url
        user_info.header_image_url = form.header_image_url.data or back_up.header_image_url
        user_info.bio = form.bio.data or back_up.bio

        if user_info.authenticate(user_info.username, form.password.data):

            db.session.add(user_info)
            db.session.commit()

            return redirect(f'/users/{g.user.id}')
        else:
            flash('Incorect Password!', 'danger')
            return render_template('/users/edit.html', form=form)

    return render_template('/users/edit.html', form=form)
Exemplo n.º 7
0
def signup():
    """Handle user signup.

    Create new user and add to DB. Redirect to home page.

    If form not valid, present form.

    If there is already a user with that username: flash message
    and re-present form.
    """

    form = UserAddForm()

    if form.validate_on_submit():
        try:
            user = User.signup(
                username=form.username.data,
                password=form.password.data,
                email=form.email.data,
                residentState=form.residentState.data,
                residentCity=form.residentCity.choices,
                residentStreetAddress=form.residentStreetAddress.data)
            db.session.commit()

        except IntegrityError:
            flash("Username already taken", 'danger')
            return render_template('signup.html', form=form)

        do_login(user)

        return redirect("/")

    else:
        return render_template('signup.html', form=form)
Exemplo n.º 8
0
def signup():
    """Handle user signup.

    Create new user and add to DB. Redirect to home page.

    If form not valid, present form.

    If the there already is a user with that username: flash message
    and re-present form.
    """

    form = UserAddForm()
    if form.validate_on_submit():
        try:
            username = generate_username(form.data['first_name'],
                                         form.data['last_name'])

            user = User.signup(first_name=form.data['first_name'],
                               last_name=form.data['last_name'],
                               email=form.data['email'],
                               username=username,
                               password=form.data['password'])
            db.session.commit()

        except IntegrityError as e:
            # need to also handle "Email already taken" errors
            flash("Username already taken", 'danger')
            return render_template('users/signup.html', form=form)
        do_login(user)

        return redirect("/")
    else:
        return render_template('users/signup.html', form=form)
Exemplo n.º 9
0
def sign_up_page():
    """ Render the signup form or process the information """

    if 'CURR_USER_KEY' in session:
        flash(
            "You are already logged into an account, please log out before creating a new account.",
            "danger")
        return redirect("/search")

    form = UserAddForm(prefix='form-user-signup-')

    if form.validate_on_submit():
        user_obj = {
            'first_name': form.first_name.data,
            'display_name': form.display_name.data,
            'email': form.email.data,
            'password': form.password.data,
            'profile_pic': request.form.get('profile_pic'),
            'lat': form.lat.data,
            'long': form.long.data,
            'privacy': request.form.get('privacy'),
            'seeking_project': request.form.get('seeking_project'),
            'seeking_help': request.form.get('seeking_help')
        }
        user_final = User.signup(user_obj)
        browser_login(user_final)

        flash("Signed up successfully", "success")
        return redirect("/search")

    return render_template("profile-new.html", form=form)
Exemplo n.º 10
0
def signup():
    form = UserAddForm()
    if form.validate_on_submit():
        username = form.username.data
        email = form.email.data
        password = form.password.data
        firstname = form.firstname.data
        lastname = form.lastname.data
        pwd = User.register(username, password)
        if form.image_file.data:
            picture_file = save_picture(form.image_file.data)
            image_file = picture_file
            new_user = User(username=username,
                            password=pwd,
                            email=email,
                            firstname=firstname,
                            lastname=lastname,
                            image_file=image_file)
        else:
            new_user = User(username=username,
                            password=pwd,
                            email=email,
                            firstname=firstname,
                            lastname=lastname)
        db.session.add(new_user)
        try:
            db.session.commit()
        except IntegrityError:
            flash("Username already taken", 'danger')
            return render_template('signup.html', form=form)
        do_login(new_user)
        flash('Welcome! Your Account Successfully Created!', "success")
        return redirect("/index")
    return render_template('signup.html', form=form)
Exemplo n.º 11
0
def signup():
    """Handle user signup.

    Create new user and add to DB. Redirect to home page.

    If form not valid, present form.

    If the there already is a user with that username: flash message
    and re-present form.
    """
    if CURR_USER_KEY in session:
        del session[CURR_USER_KEY]
    form = UserAddForm()

    if form.validate_on_submit():
        try:
            user = User.register(
                first_name=form.first_name.data,
                last_name=form.last_name.data,
                username=form.username.data,
                password=form.password.data,
                email=form.email.data,
            )
            db.session.commit()

        except IntegrityError as e:
            flash("Username already taken", 'danger')
            return render_template('signup.html', form=form)

        do_login(user)

        return redirect("/")

    else:
        return render_template('signup.html', form=form)
Exemplo n.º 12
0
def profile():
    """Update profile for current user."""
    if not g.user:
        flash('Access unauthorized.', "danger")
        return redirect('/')

    form = UserAddForm(obj=g.user)

    if form.validate_on_submit():
        g.user.username = form.username.data
        g.user.email = form.email.data
        g.user.image_url = form.image_url.data
        g.user.header_image_url = form.header_image_url.data

        user = User.authenticate(form.username.data, form.password.data)
        if user:
            try:
                db.session.commit()
                flash("changes saved", "success")
                return redirect(f"/users/{g.user.id}")
            except Exception:
                flash('error', 'danger')
                db.session.rollback()
                return redirect('/')
        else:
            flash('Invalid password', 'danger')
            return redirect('/')
    else:
        return render_template('/users/edit.html', form=form)
Exemplo n.º 13
0
def profile():
    """Update profile for current user."""

    form = UserAddForm()

    if form.validate_on_submit():
        user = User.authenticate(form.username.data, form.password.data)

        if user:
            u = User.query.filter_by(username=form.username.data).first()
            try:
                u.username = form.username.data
                u.email = form.email.data
                u.image_url = form.image_url.data or u.image_url
                db.session.commit()
                flash(f"{user.username} updated!", "success")
                return redirect(f"/users/${u.id}")

            except:
                flash("Username already taken", 'danger')
                return redirect('users/profile')
        else:
            flash("Incorrect password", 'danger')
            return redirect('users/profile')

    else:
        user = g.user.id
        print(user)
        return render_template('users/edit.html', form=form, user=user)
Exemplo n.º 14
0
def signup():
    """Handle signing up for the Setlist Manager."""

    form = UserAddForm()

    if form.validate_on_submit():
        try:
            user = User.signup(
                username=form.username.data,
                password=form.password.data,
                email=form.email.data,
            )
            db.session.commit()

        except IntegrityError as e:
            if "users_username_key" in repr(e):
                flash("That username is already in use.", "danger")
            elif "users_email_key" in repr(e):
                flash("That email address is already in use.", "danger")
            return render_template("sign-up.html", form=form)

        do_login(user)

        return redirect("/")

    else:
        return render_template("sign-up.html", form=form)
Exemplo n.º 15
0
def profile():
    """Update profile for current user."""
    user = g.user

    form = UserAddForm(obj=user)

    if form.validate_on_submit():
        user = User.authenticate(user.username,
                                 form.password.data)
        if user:
            user.username = form.username.data
            user.email = form.email.data
            user.image_url = form.image_url.data
            user.header_image_url = form.header_image_url.data
            user.bio = form.bio.data
            user.location = form.location.data

            db.session.add(user)
            db.session.commit()
            flash(f'{user.username} has been edited', 'warning')
        else:
            flash('Incorrect password for {{ user.username }}', 'warning')
        return redirect(f'/users/{user.id}')
    else:
        return render_template('/users/edit.html', form=form)
Exemplo n.º 16
0
def user_add():
    # 新增用户
    form = UserAddForm()
    if form.validate_on_submit() and request.method == 'POST':
        password = form.data['password']
        password_repeat = form.data['password_repeat']
        if password != password_repeat:
            flash('两次输入的密码不一致', 'warning')
            return redirect(url_for('accounts.user_add'))
        # 将数据保存到数据库
        user_obj = User(username=form.data['username'],
                        password=form.data['password'],
                        email=form.data['email'],
                        role=form.data['role'],
                        created_at=datetime.now(),
                        update_at=datetime.now())
        db.session.add(user_obj)
        db.session.commit()
        # 消息提示
        flash('新增用户成功', 'success')
        # 跳转到用户列表
        return redirect(url_for('accounts.user_list'))
    else:
        # 消息提示
        if request.method == 'POST':
            flash('请修改错误后再提价,谢谢', 'warning')
            print(form.errors)

    return render_template('user_add.html', form=form)
Exemplo n.º 17
0
def register_new_user():
    """handle registration of new user"""
    register_form = UserAddForm()
    login_form = LoginForm()

    if register_form.validate_on_submit():
        try:
            user = User.signup(
                email=register_form.new_email.data,
                password=register_form.new_password.data,
                username=register_form.new_username.data,
                first_name=register_form.first_name.data.capitalize(),
                last_name=register_form.last_name.data.capitalize(),
                image_url=register_form.image_url.data
                or User.image_url.default.arg,
                cover_url=register_form.cover_url.data
                or User.cover_url.default.arg)
            db.session.commit()

            do_login(user)
            return redirect('/')
        except IntegrityError:
            flash(
                "Email or username already registered! Please log in or try again",
                'danger')
            return render_template('home_anon.html',
                                   register_form=register_form,
                                   login_form=login_form)

    else:
        return render_template('home_anon.html',
                               register_form=register_form,
                               login_form=login_form)
Exemplo n.º 18
0
def signup():
    """Handle user signup.

    Create new user and add to DB. Redirect to home page.

    If form not valid, present form.

    If the there already is a user with that username: flash message
    and re-present form.
    """

    form = UserAddForm()

    if form.validate_on_submit():
        try:
            user = User.signup(
                username=form.username.data,
                password=form.password.data,
                email=form.email.data,
                image_url=form.image_url.data or User.image_url.default.arg,
            )
            db.session.commit()

        except IntegrityError:
            flash("Username already taken", 'danger')
            return render_template('users/signup.html', form=form)

        do_login(user)

        return redirect("/")

    else:
        return render_template('users/signup.html', form=form)
Exemplo n.º 19
0
def edit_profile():
    """edit profile info"""

    if not g.user:
        flash("Access Denied Please Login First", "danger")
        return redirect("/login")

    form = UserAddForm(obj=g.user)

    if form.validate_on_submit():

        g.user.username = form.username.data
        g.user.first_name = form.first_name.data
        g.user.last_name = form.last_name.data
        g.user.email = form.email.data
        password = form.password.data

        user = User.authenticate(g.user.username, password)
        if user:

            db.session.add(g.user)
            db.session.commit()

            return redirect("/user")

        else:
            flash("Password Incorrect")

    return render_template("/users/editprofile.html",
                           form=form,
                           user_id=g.user.id)
Exemplo n.º 20
0
def sign_up_user():
    """Handle user signup.

    Create new user and add to DB. Redirect to home page.

    If the there already is a user with that username: flash message
    and re-present form.
    """

    form = UserAddForm()

    if form.validate_on_submit():
        try:
            user = User.signup(
                username=form.username.data,
                password=form.password.data,
                email=form.email.data,
            )
            db.session.commit()
            cabinet = Cabinet(user_id=user.id)
            db.session.add(cabinet)
            db.session.commit()

        except IntegrityError:
            flash("Username already taken", 'danger')
            return render_template('users/signup.html', form=form)

        do_login(user)

        return redirect("/user/")

    flash('did not work')
    return redirect('/')
Exemplo n.º 21
0
def signup():
    """Handle user signup.
    Create new user and add to DB. Redirect to home page.
    If form not valid, present form.
    If the there already is a user with that username: flash message
    and re-present form.
    """

    form = UserAddForm()

    if form.validate_on_submit():
        try:
            user = User.signup(
                username=form.username.data,
                password=form.password.data,
            )

        except IntegrityError:
            flash(f"Username {form.username.data} already taken", 'danger')
            form.username.data = ""
            return render_template('signup.html', form=form)

        do_login(user)
        flash(f"Welcome, {user.username}!", 'success')
        return redirect("/")

    else:
        return render_template('signup.html', form=form)
Exemplo n.º 22
0
def show_profile(user_id):
    """Show individual user profile"""

    if not g.user:
        flash("Access unauthorized. Please login to view profile!", "danger")
        return redirect("/")

    user = User.query.get_or_404(user_id)
    saved_recipes = User.get_user_fav_recipes(user_id)
    form = UserAddForm()
    delete_form = DeleteAccountForm()

    if form.validate_on_submit():
        User.update_user(user, form)
        db.session.commit()

        return redirect(f'/users/{user_id}')

    if delete_form.validate_on_submit():
        valid = User.authenticate(user.username, delete_form.password.data)

        if (valid):
            User.remove_user(user_id)
            db.session.commit()

            do_logout()
        return redirect("/")
    return render_template('/users/profile.html',
                           saved_recipes=saved_recipes,
                           user=user,
                           form=form,
                           delete_form=delete_form)
Exemplo n.º 23
0
def signup():
    """Handle user signup."""

    if CURR_USER_KEY in session:
        del session[CURR_USER_KEY]
    form = UserAddForm()

    if form.validate_on_submit():
        try:
            user = User.signup(
                username=form.username.data,
                password=form.password.data,
                email=form.email.data,
                image=form.image.data,
            )

            user.save()

        except NotUniqueError as e:
            flash(f"{e}: Username already exists", 'danger')
            return render_template('users/signup.html', form=form)

        do_login(user)

        return redirect("/")

    else:
        return render_template('users/signup.html', form=form)
Exemplo n.º 24
0
def signup():
    """Handle user signup.

    Create new user and add to DB. Redirect to home page.

    If form not valid, present form.

    If the there already is a user with that username: flash message
    and re-present form.
    """

    form = UserAddForm()

    if form.validate_on_submit():
        try:
            user = User.signup(
                username=form.username.data,
                password=form.password.data,
                email=form.email.data
            )
            db.session.commit()

        except IntegrityError:
            flash("Username already taken", 'danger')
            return render_template('users/signup.html', form=form)

        do_login(user)
        flash("Your account has been made!","success")
        flash("To search your neighborhood, please complete your profile (Especially location!) below.", "primary")
        return redirect("/users/profile")

    else:
        return render_template('users/signup.html', form=form)
Exemplo n.º 25
0
def signup():
    """Handle user signup.
    Create new user and add to DB. Redirect to home user's page.
    If form not valid, present form.
    If the there already is a user with that username: flash message
    and re-present form.
    """

    signup_form = UserAddForm()

    if signup_form.validate_on_submit():
        username = signup_form.username.data
        password = signup_form.password.data
        email = signup_form.email.data
        confirm = signup_form.password_check.data
        image_url = User.image_url.default.arg
        try:
            user = User.signup(username=username,
                               password=password,
                               email=email,
                               image_url=image_url)
            flash(f"Welcome {user.username}!!!")
        except IntegrityError:
            flash("Username already taken")
            return redirect("/")
        access.do_login(user)
        return redirect("/")
    flash("Password does not match confirmed password")
    return redirect("/")
Exemplo n.º 26
0
def signup():
    """Handle user signup."""

    if CURR_USER_KEY in session:
        del session[CURR_USER_KEY]
    form = UserAddForm()

    if form.validate_on_submit():
        try:
            user = User.signup(
                username=form.username.data,
                password=form.password.data,
                email=form.email.data,
                image_url=form.image_url.data or User.image_url.default.arg,
            )
            db.session.commit()

        except IntegrityError as e:
            flash("Username already taken", 'danger')
            return render_template('users/signup.html', form=form)

        do_login(user)

        return redirect("/")

    else:
        return render_template('users/signup.html', form=form)
Exemplo n.º 27
0
def signup():
    """Handle user signup.
    Create new user and add to DB. 
    If the there already is a user with that username: flash message
    """

    form = UserAddForm()

    if form.validate_on_submit():
        try:
            user = User.signup(first_name=form.first_name.data,
                               last_name=form.last_name.data,
                               username=form.username.data,
                               email=form.email.data,
                               password=form.password.data)
            db.session.commit()

        except IntegrityError:
            flash("Username already taken", 'danger')
            return render_template('user_templates/signup.html', form=form)

        do_login(user)

        return redirect("/")

    else:
        return render_template('user_templates/signup.html', form=form)
Exemplo n.º 28
0
def signup():
    form = UserAddForm()
    if form.validate_on_submit():
        user = User.register(form.username.data, form.password.data,
                             form.email.data)
        db.session.commit()
        do_login(user)
        return redirect('/')
    else:
        return render_template('signup.html', form=form)
    return render_template('signup.html', form=form)
Exemplo n.º 29
0
def user_add():
    user_add_form = UserAddForm()
    if user_add_form.validate_on_submit():
        print(user_add_form.username.data)
        new_user = User(
            username = user_add_form.username.data,
            password = user_add_form.password.data,
            email = user_add_form.email.data,
            description = user_add_form.description.data,
            role_id = int(user_add_form.role.data)
        )
        db.session.add(new_user)
        db.session.commit()
        return redirect(url_for('auth.user_list'))
    return render_template('/auth/user_add.html',user_add_form=user_add_form)
Exemplo n.º 30
0
def signup():
    """Handle user signup.

    Create new user and add to DB. Redirect to home page.

    If form not valid, present form.

    If the there already is a user with that username: flash message
    and re-present form.
    """

    form = UserAddForm()

    if form.validate_on_submit():
        try:
            user = User.signup(
                username=form.username.data,
                password=form.password.data,
                email=form.email.data,
                image_url=form.image_url.data or User.image_url.default.arg,
            )
            db.session.commit()

        except IntegrityError as err:

            db.session.rollback()

            #TODO: Consider refactoring to helper, this code is used in edit user profile route
            searched_username_user = User.query.filter_by(
                username=form.username.data).first()
            if searched_username_user and searched_username_user is not g.user:
                form.username.errors = ["Username is taken."]

            searched_email_user = User.query.filter_by(
                email=form.email.data).first()
            if searched_email_user and searched_email_user is not g.user:
                form.email.errors = ["Email is taken."]

            return render_template('users/signup.html', form=form)

        do_login(user)

        return redirect("/")

    else:
        return render_template('users/signup.html', form=form)