2016-02-15 20:30:53 +00:00
|
|
|
import functools
|
|
|
|
|
|
|
|
import flask
|
|
|
|
|
|
|
|
from webapp import config
|
|
|
|
|
|
|
|
def validate(predicate, arg, error='Error!', redirect='/'):
|
|
|
|
def decorator(f):
|
|
|
|
@functools.wraps(f)
|
|
|
|
def func(**kw):
|
|
|
|
v = kw.get(arg)
|
|
|
|
if predicate(v):
|
|
|
|
return f(**kw)
|
|
|
|
else:
|
|
|
|
flask.flash(error, category='error')
|
|
|
|
return flask.redirect(redirect)
|
|
|
|
return func
|
|
|
|
return decorator
|
|
|
|
|
|
|
|
def sanitize_perms():
|
2019-10-18 12:13:10 +00:00
|
|
|
config.can = { k: set(map(sanitize_ldap, v)) for k,v in config.can.items() }
|
2016-02-15 20:30:53 +00:00
|
|
|
|
|
|
|
def sanitize_readable():
|
2019-10-18 12:13:10 +00:00
|
|
|
config.readable_names = { sanitize_ldap(k): v for k, v in config.readable_names.items() }
|
2016-02-15 20:30:53 +00:00
|
|
|
|
|
|
|
def sanitize_ldap(k):
|
|
|
|
k = k.lower()
|
|
|
|
return (k in config.full_name and config.full_name[k]) or k
|
|
|
|
|