Esempio n. 1
0
def homepage():
    """Check if user is signed in redirect to profile page

    -If user is not signed in show homepage
    -should generate a form to login
    -when user logs in redirects to profile
    """
    if CURR_USER_KEY in session:
        user_id = g.user.id
        return redirect(url_for("showUser", user_id=user_id))

    form = LoginForm()

    if form.validate_on_submit():
        user = Users.authenticate(form.username.data, form.password.data)
        if user:
            doLogin(user)
            print("user has been stored in session")
            flash(f"You have succcessfully logged in, welcome {user.username}")
            # redirect to user profile
            return redirect("/")
        else:
            form.username.errors.append(
                ValidationError('invalid username or password'))

    return render_template("welcome.html", form=form)
Esempio n. 2
0
def login():
    """Login users.

    Displays a form that when submitted allows a user to access logged in
    features.
    """

    form = LoginForm()

    if form.validate_on_submit():
        # Assigning submitted form data
        username = form.username.data
        password = form.password.data

        # Authenticating a user
        user = Users.authenticate(username, password)
        if user:
            session['username'] = user.username

            return redirect(f'/users/{user.username}')
        else:
            flash('Incorrect username or password. Please try again.',
                  'danger')

    return render_template('login.html', form=form)
Esempio n. 3
0
def login():
    """Handle user login."""

    form = UserLoginForm()

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

        if user:
            do_login(user)
            add_user_to_g()
            return redirect(f"/users/{g.user.id}/home")

        flash("Wrong username or password, please try again.")

    return render_template('users/login.html', form=form)
Esempio n. 4
0
def login_user():
    username = session.get('username')
    if username:
        return redirect(f'/users/{username}')
    
    form = UserLoginForm()

    if form.validate_on_submit():
        username = form.username.data
        password = form.password.data

        user = Users.authenticate(username, password)
        
        if user:
            session['username'] = user.username
            return redirect(f'/users/{user.username}')
        else:
            form.username.errors = ['Invalid username/password']

    return render_template('login.html', form=form)
Esempio n. 5
0
def edit_profile():
    """Update profile for current user."""

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

    user = g.user
    form = UserEditForm(obj=user)

    if form.validate_on_submit():
        if Users.authenticate(user.username, form.password.data):
            user.username = form.username.data
            user.email = form.email.data
            user.location = form.location.data
            user.image_url = form.image_url.data or Users.image_url.default.arg
            user.bio = form.bio.data or Users.bio.default.arg

            db.session.commit()
            return redirect(f"/users/{user.id}")

        flash("Wrong password, please try again.", 'danger')

    return render_template('users/edit.html', form=form, user_id=user.id)
Esempio n. 6
0
def login():
    if 'username' in session:
        username=session['username']
        return redirect(f'/users/{username}')

    form=LoginForm()

    if form.validate_on_submit():
        username = form.username.data
        password = form.password.data

        user = Users.authenticate(username, password)

        if user:
            session['username'] = user.username
            return redirect(f'/users/{user.username}')
        else:
            form.username.errors = ["Invalid username/password."]
            kind='Login'
            return render_template("users/login_register.html", form=form, kind=kind)

    else:
        kind='Login'
        return render_template("users/login_register.html", form=form, kind=kind)
Esempio n. 7
0
 def test_wrong_password(self):
     self.assertFalse(Users.authenticate(self.u1.username, "badpassword"))
Esempio n. 8
0
 def test_invalid_username(self):
     self.assertFalse(Users.authenticate("badusername", "password"))
Esempio n. 9
0
 def test_valid_authentication(self):
     u = Users.authenticate(self.u1.username, "password")
     self.assertIsNotNone(u)
     self.assertEqual(u.id, self.uid1)