| 27 | |
| 28 | @users_blueprint.route('/login', methods=['GET', 'POST']) # pragma: no cover |
| 29 | def login(): |
| 30 | error = None |
| 31 | form = LoginForm(request.form) |
| 32 | if request.method == 'POST': |
| 33 | if form.validate_on_submit(): |
| 34 | user = User.query.filter_by(name=request.form['username']).first() |
| 35 | if user is not None and bcrypt.check_password_hash( |
| 36 | user.password, request.form['password'] |
| 37 | ): |
| 38 | login_user(user) |
| 39 | flash('You were logged in. Go Crazy.') |
| 40 | return redirect(url_for('home.home')) |
| 41 | |
| 42 | else: |
| 43 | error = 'Invalid username or password.' |
| 44 | return render_template('login.html', form=form, error=error) |
| 45 | |
| 46 | |
| 47 | @users_blueprint.route('/logout') # pragma: no cover |