Initial App Commit with Login and Auth
This commit is contained in:
12
app/controllers/__init__.py
Normal file
12
app/controllers/__init__.py
Normal file
@ -0,0 +1,12 @@
|
||||
from flask import Blueprint
|
||||
import os
|
||||
import importlib
|
||||
|
||||
main = Blueprint('main', __name__)
|
||||
|
||||
|
||||
controllers_dir = os.path.dirname(__file__)
|
||||
for filename in os.listdir(controllers_dir):
|
||||
if filename.endswith('.py') and filename != '__init__.py':
|
||||
module_name = f'app.controllers.{filename[:-3]}'
|
||||
importlib.import_module(module_name)
|
31
app/controllers/auth_controller.py
Normal file
31
app/controllers/auth_controller.py
Normal file
@ -0,0 +1,31 @@
|
||||
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'))
|
7
app/controllers/user_controller.py
Normal file
7
app/controllers/user_controller.py
Normal file
@ -0,0 +1,7 @@
|
||||
from flask import render_template
|
||||
from app.models.users import User
|
||||
|
||||
def get_users():
|
||||
users = User.query.all()
|
||||
return render_template('users.html', users=users)
|
||||
|
Reference in New Issue
Block a user