"""Authorisation utilities.""" from functools import wraps from flask import flash, redirect from uploader import session def require_login(function): """Check that the user is logged in before executing `func`.""" @wraps(function) def __is_session_valid__(*args, **kwargs): """Check that the user is logged in and their token is valid.""" def __clear_session__(_no_token): session.clear_session_info() flash("You need to be logged in.", "alert-danger") return redirect("/") return session.user_token().either( __clear_session__, lambda token: function(*args, **kwargs)) return __is_session_valid__