from flask import Blueprint, request, redirect, url_for, flash, render_template from flask_login import login_user, logout_user from app.models.users import User auth = Blueprint('auth', __name__) def _authenticate(username, password): user = User.query.filter_by(username=username).first() if user and user.password == password: return user return None def login(): if request.method == 'POST': username = request.form.get('username') password = request.form.get('password') user = _authenticate(username, password) if user: login_user(user) flash('Logged in successfully!', 'success') return redirect(url_for('main.users_route')) else: flash('Invalid username or password.', 'danger') return render_template('login.html') def logout(): logout_user() flash('You have been logged out.', 'info') return redirect(url_for('main.login_route'))