Add function to check if given email in whitelist

This commit is contained in:
Imdad Ahad
2016-10-25 18:10:15 +01:00
parent 1b046ab94d
commit f33e0d0e94

View File

@@ -3,7 +3,8 @@ import csv
from io import StringIO from io import StringIO
from os import path from os import path
from functools import wraps 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
import pyexcel.ext.io import pyexcel.ext.io
import pyexcel.ext.xls import pyexcel.ext.xls
@@ -41,7 +42,6 @@ def user_has_permissions(*permissions, admin_override=False, any_=False):
def wrap(func): def wrap(func):
@wraps(func) @wraps(func)
def wrap_func(*args, **kwargs): def wrap_func(*args, **kwargs):
from flask_login import current_user
if current_user and current_user.is_authenticated: if current_user and current_user.is_authenticated:
if current_user.has_permissions( if current_user.has_permissions(
permissions=permissions, permissions=permissions,
@@ -201,3 +201,9 @@ class Spreadsheet():
def get_help_argument(): def get_help_argument():
return request.args.get('help') if request.args.get('help') in ('1', '2', '3') else None 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))