User permissions added with test.

This commit is contained in:
Nicholas Staples
2016-02-19 16:38:04 +00:00
parent f761afa76e
commit 32e37d89fb
6 changed files with 79 additions and 2 deletions

View File

@@ -1,3 +1,7 @@
from functools import wraps
from flask import abort
class BrowsableItem(object):
"""
Maps for the template browse-list.
@@ -68,3 +72,16 @@ def format_phone_number(number):
if len(number) < 9:
raise InvalidPhoneError('Not enough digits')
return '+447{}{}{}'.format(*re.findall('...', number))
def user_has_permissions(*permissions):
def wrap(func):
@wraps(func)
def wrap_func(*args, **kwargs):
# We are making the assumption that the user is logged in.
from flask_login import current_user
if set(permissions) > set(current_user.permissions):
abort(403)
return func(*args, **kwargs)
return wrap_func
return wrap