mirror of
https://github.com/cwinfo/powerdns-admin.git
synced 2024-11-14 09:30:27 +00:00
29 lines
806 B
Python
29 lines
806 B
Python
|
from functools import wraps
|
||
|
from flask import g, request, redirect, url_for
|
||
|
|
||
|
from app import app
|
||
|
from app.models import Role
|
||
|
|
||
|
|
||
|
def admin_role_required(f):
|
||
|
@wraps(f)
|
||
|
def decorated_function(*args, **kwargs):
|
||
|
if g.user.role.name != 'Administrator':
|
||
|
return redirect(url_for('error', code=401))
|
||
|
return f(*args, **kwargs)
|
||
|
return decorated_function
|
||
|
|
||
|
|
||
|
def can_access_domain(f):
|
||
|
@wraps(f)
|
||
|
def decorated_function(*args, **kwargs):
|
||
|
if g.user.role.name != 'Administrator':
|
||
|
domain_name = kwargs.get('domain_name')
|
||
|
user_domain = [d.name for d in g.user.get_domain()]
|
||
|
|
||
|
if domain_name not in user_domain:
|
||
|
return redirect(url_for('error', code=401))
|
||
|
|
||
|
return f(*args, **kwargs)
|
||
|
return decorated_function
|