31 lines
979 B
Python
31 lines
979 B
Python
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')) |