ska-referee-test/ref-test/app/tools/auth.py

29 lines
988 B
Python

from .data import load
from ..models import User
from ..tools.logs import write
from flask.helpers import abort, flash, redirect, url_for
from flask_login import current_user
from sqlalchemy.exc import SQLAlchemyError
from functools import wraps
def require_account_creation(function):
@wraps(function)
def wrapper(*args, **kwargs):
try:
if User.query.count() == 0:
flash('Please register a user account.', 'alert')
return redirect(url_for('admin._register'))
except (SQLAlchemyError, ConnectionError) as exception:
write('system.log', f'Database error when checking for existing accounts: {exception}')
return abort(500)
return function(*args, **kwargs)
return wrapper
def disable_if_logged_in(function):
@wraps(function)
def wrapper(*args, **kwargs):
if current_user.is_authenticated: return abort(404)
return function(*args, **kwargs)
return wrapper