29 lines
667 B
Python
29 lines
667 B
Python
from __future__ import annotations
|
|
|
|
from typing import Dict
|
|
import flask_login
|
|
from flask import Flask
|
|
|
|
login_manager = flask_login.LoginManager()
|
|
users: Dict[str, User]
|
|
|
|
def init_auth(app: Flask):
|
|
login_manager.init_app(app)
|
|
login_manager.login_view = "main.admin_login" # type: ignore
|
|
global users
|
|
users = {"admin": User("admin", app.config["ADMIN_PASSWORD"])}
|
|
|
|
|
|
class User(flask_login.UserMixin):
|
|
def __init__(self, id, password):
|
|
self.id = id
|
|
self.password = password
|
|
|
|
@login_manager.user_loader
|
|
def user_loader(id: str):
|
|
return users.get(id)
|
|
|
|
def check_password(user: User, input: str):
|
|
return user.password == input
|
|
|