18 lines
454 B
Python
18 lines
454 B
Python
from flask import redirect, url_for, flash
|
|
from flask import current_user
|
|
import functools
|
|
|
|
# Use only with @login_required.
|
|
def privilege_required(priv):
|
|
def privilege_decorator(f):
|
|
@functools.wraps(f)
|
|
def wrapper():
|
|
if not current_user.priv(priv):
|
|
flash(f'Cette page est protégée par le privilège <code>{priv}'+
|
|
'</code>', 'error')
|
|
return redirect(url_for('index'))
|
|
else:
|
|
f()
|
|
return wrapper
|
|
return privilege_decorator
|