From 126db71de64a924eb3b0a3909f2843d03666d047 Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Wed, 12 Dec 2018 12:29:08 +0000 Subject: [PATCH] Refactor government user check onto model --- app/main/views/add_service.py | 2 +- app/main/views/choose_account.py | 2 +- app/main/views/user_profile.py | 4 ++-- app/models/user.py | 7 +++++++ 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/main/views/add_service.py b/app/main/views/add_service.py index 114f43437..d959fb798 100644 --- a/app/main/views/add_service.py +++ b/app/main/views/add_service.py @@ -75,7 +75,7 @@ def add_service(): service_id = _add_invited_user_to_service(invited_user) return redirect(url_for('main.service_dashboard', service_id=service_id)) - if not is_gov_user(current_user.email_address): + if not current_user.is_gov_user: abort(403) form = CreateServiceForm() diff --git a/app/main/views/choose_account.py b/app/main/views/choose_account.py index a7aa2da1f..30a035bfa 100644 --- a/app/main/views/choose_account.py +++ b/app/main/views/choose_account.py @@ -26,7 +26,7 @@ def choose_account(): 'views/choose-account.html', organisations=orgs_and_services['organisations'], services_without_organisations=orgs_and_services['services_without_organisations'], - can_add_service=is_gov_user(current_user.email_address) + can_add_service=current_user.is_gov_user, ) diff --git a/app/main/views/user_profile.py b/app/main/views/user_profile.py index 335d7526d..f9a50810a 100644 --- a/app/main/views/user_profile.py +++ b/app/main/views/user_profile.py @@ -33,7 +33,7 @@ NEW_MOBILE_PASSWORD_CONFIRMED = 'new-mob-password-confirmed' def user_profile(): return render_template( 'views/user-profile.html', - can_see_edit=is_gov_user(current_user.email_address) + can_see_edit=current_user.is_gov_user, ) @@ -58,7 +58,7 @@ def user_profile_name(): @login_required def user_profile_email(): - if not is_gov_user(current_user.email_address): + if not current_user.is_gov_user: abort(403) def _is_email_already_in_use(email): diff --git a/app/models/user.py b/app/models/user.py index 5f0d5033e..c1226b2ff 100644 --- a/app/models/user.py +++ b/app/models/user.py @@ -3,6 +3,9 @@ from itertools import chain from flask import request, session from flask_login import AnonymousUserMixin, UserMixin +from app.utils import is_gov_user + + roles = { 'send_messages': ['send_texts', 'send_emails', 'send_letters'], 'manage_templates': ['manage_templates'], @@ -102,6 +105,10 @@ class User(UserMixin): def is_active(self): return self.state == 'active' + @property + def is_gov_user(self): + return is_gov_user(self.email_address) + @property def is_authenticated(self): return (