From f33e0d0e94eb1826e7de1673feaacf4708a18f66 Mon Sep 17 00:00:00 2001 From: Imdad Ahad Date: Tue, 25 Oct 2016 18:10:15 +0100 Subject: [PATCH] Add function to check if given email in whitelist --- app/utils.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/utils.py b/app/utils.py index 72232cc6b..031ad7b1c 100644 --- a/app/utils.py +++ b/app/utils.py @@ -3,7 +3,8 @@ import csv from io import StringIO from os import path from functools import wraps -from flask import (abort, session, request, redirect, url_for) +from flask import (abort, current_app, session, request, redirect, url_for) +from flask_login import current_user import pyexcel import pyexcel.ext.io import pyexcel.ext.xls @@ -41,7 +42,6 @@ def user_has_permissions(*permissions, admin_override=False, any_=False): def wrap(func): @wraps(func) def wrap_func(*args, **kwargs): - from flask_login import current_user if current_user and current_user.is_authenticated: if current_user.has_permissions( permissions=permissions, @@ -201,3 +201,9 @@ class Spreadsheet(): def get_help_argument(): return request.args.get('help') if request.args.get('help') in ('1', '2', '3') else None + + +def user_in_whitelist(email_address): + valid_domains = current_app.config.get('EMAIL_DOMAIN_REGEXES', []) + email_regex = "[^\@^\s]+@([^@^\\.^\\s]+\.)*({})$".format("|".join(valid_domains)) + return bool(re.match(email_regex, email_address))