Files
tutor-tool/app/auth.py

30 lines
867 B
Python

from __future__ import annotations
from typing import Dict
import flask_login
from flask import Flask
from flask_bcrypt import Bcrypt
login_manager = flask_login.LoginManager()
bcrypt = Bcrypt()
users: Dict[str, User]
def init_auth(app: Flask):
login_manager.init_app(app)
bcrypt.init_app(app)
login_manager.login_view = "main.admin_login" # type: ignore
global users
users = {"cato447": User("cato447", app.config["ADMIN_PASSWORD"], app.config["DEFAULT_COURSE"])}
class User(flask_login.UserMixin):
def __init__(self, id, password, active_course_id):
self.id = id
self.password = password
self.active_course_id = active_course_id
@login_manager.user_loader
def user_loader(id: str):
return users.get(id)
def check_password(user: User, input: str):
return bcrypt.check_password_hash(user.password, input)