dash-stack/dash/decorators.py

18 lines
554 B
Python

from functools import wraps
from flask import abort, redirect, request, url_for, flash
from flask_login import current_user
def requires_roles(*roles):
def wrapper(f):
@wraps(f)
def wrapped(*args, **kwargs):
if get_current_user_role() not in roles:
flash('Authentication error, please check your details and try again','error')
return redirect(url_for('main.index'))
return f(*args, **kwargs)
return wrapped
return wrapper
def get_current_user_role():
return current_user.role.name