Source code for djask.admin.ui.decorators
import typing as t
from functools import wraps
from flask import redirect
from flask import url_for
from flask_login import current_user
from werkzeug.wrappers.response import Response
[docs]def admin_required(func: t.Callable) -> t.Callable:
"""Decorator to require admin access.
.. versionadded:: 0.1.0
:param func: The route to be wrapped by this decorator.
"""
@wraps(func)
def wrapper(*args, **kwargs) -> Response:
if not (current_user.is_authenticated and current_user.is_admin):
return redirect(url_for("admin.login"))
return func(*args, **kwargs)
return wrapper