26 lines
883 B
Python
26 lines
883 B
Python
from flask import redirect, url_for, session, request, current_app, render_template
|
|
from functools import wraps
|
|
|
|
|
|
def check_auth(func):
|
|
@wraps(func)
|
|
def wrapper(*args, **kwargs):
|
|
if 'login' not in session:
|
|
return redirect(url_for('auth_bp.auth'))
|
|
return func(*args, **kwargs)
|
|
return wrapper
|
|
|
|
def group_required(func):
|
|
@wraps(func)
|
|
def wrapper(*args, **kwargs):
|
|
user_role = session.get('role')
|
|
user_request = request.endpoint
|
|
print('request_endpoint=', user_request)
|
|
user_bp = user_request.split('.')[0]
|
|
access = current_app.config['db_access']
|
|
if user_role in access and user_bp in access[user_role]:
|
|
return func(*args, **kwargs)
|
|
else:
|
|
return render_template('error.html', error_message='Недостаточно прав')
|
|
|
|
return wrapper |