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)
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)
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)
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)
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)
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)
def test_wrong_password(self): self.assertFalse(Users.authenticate(self.u1.username, "badpassword"))
def test_invalid_username(self): self.assertFalse(Users.authenticate("badusername", "password"))
def test_valid_authentication(self): u = Users.authenticate(self.u1.username, "password") self.assertIsNotNone(u) self.assertEqual(u.id, self.uid1)