From 4bc3fcf30c908b35eb10e5c43c19cc75fe0860bd Mon Sep 17 00:00:00 2001 From: RunasSudo Date: Thu, 23 Aug 2018 14:31:58 +1000 Subject: [PATCH] Allow administration through email --- eosweb/core/main.py | 22 +++++++++++++++------- local_settings.example.py | 4 +++- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/eosweb/core/main.py b/eosweb/core/main.py index 1d83554..d8f4f99 100644 --- a/eosweb/core/main.py +++ b/eosweb/core/main.py @@ -448,13 +448,21 @@ def email_login(): def email_authenticate(): user = None - for election in Election.get_all(): - for voter in election.voters: - if isinstance(voter.user, EmailUser): - if voter.user.email.lower() == flask.request.form['email'].lower(): - if voter.user.password == flask.request.form['password']: - user = voter.user - break + for u in app.config['ADMINS']: + if isinstance(u, EmailUser): + if u.email.lower() == flask.request.form['email'].lower(): + if u.password == flask.request.form['password']: + user = u + break + + if user is None: + for election in Election.get_all(): + for voter in election.voters: + if isinstance(voter.user, EmailUser): + if voter.user.email.lower() == flask.request.form['email'].lower(): + if voter.user.password == flask.request.form['password']: + user = voter.user + break if user is None: return flask.render_template('auth/email/login.html', error='The email or password you entered was invalid. Please check your details and try again. If the issue persists, contact the election administrator.') diff --git a/local_settings.example.py b/local_settings.example.py index 3bc4e61..0e7dde5 100644 --- a/local_settings.example.py +++ b/local_settings.example.py @@ -9,9 +9,11 @@ AUTH_METHODS = [ ('reddit', 'Reddit') ] +import eos.base.election import eos.redditauth.election ADMINS = [ - #eos.redditauth.election.RedditUser(username='xxxxxxxx') + #eos.redditauth.election.RedditUser(username='xxxxxxxx'), + #eos.base.election.EmailUser(email='xxxxx@example.com', password='abc123'), ] TASK_RUN_STRATEGY = 'eos.core.tasks.direct.DirectRunStrategy'