From 74996ed4f7be20e41c350c8e7e7f6ff888a4a9e7 Mon Sep 17 00:00:00 2001 From: Michael Olund Date: Fri, 9 Oct 2020 06:20:55 -0700 Subject: [PATCH] DIV-1141 - Added BC Services Card flag to the BceidUser model --- .../apps/core/middleware/bceid_middleware.py | 5 +++++ .../core/migrations/0024_bceiduser_is_bcsc.py | 18 ++++++++++++++++++ edivorce/apps/core/models.py | 3 +++ 3 files changed, 26 insertions(+) create mode 100644 edivorce/apps/core/migrations/0024_bceiduser_is_bcsc.py diff --git a/edivorce/apps/core/middleware/bceid_middleware.py b/edivorce/apps/core/middleware/bceid_middleware.py index f117f5ef..4aae044c 100644 --- a/edivorce/apps/core/middleware/bceid_middleware.py +++ b/edivorce/apps/core/middleware/bceid_middleware.py @@ -99,6 +99,7 @@ class BceidMiddleware(MiddlewareMixin): # pylint: disable=too-few-public-method siteminder_user = request.META.get('HTTP_SM_USER', '') is_localdev = settings.DEPLOYMENT_TYPE in ['localdev', 'minishift'] update_user = False + using_bc_services_card = False guid = request.META.get('HTTP_SMGOV_USERGUID', '') given_names = request.META.get('HTTP_SMGOV_GIVENNAMES', '') @@ -108,6 +109,7 @@ class BceidMiddleware(MiddlewareMixin): # pylint: disable=too-few-public-method # HTTP_SMGOV_USERDISPLAYNAME is not included when BC Services Card authentication is used. if not displayname and (surname or given_names): displayname = "{0} {1}".format(given_names, surname) + using_bc_services_card = True # HTTP_SM_USER is typically '.' when BC Services Card authentication is used. if (not siteminder_user or siteminder_user == '.') and given_names and surname: @@ -135,6 +137,9 @@ class BceidMiddleware(MiddlewareMixin): # pylint: disable=too-few-public-method if created or not request.user.sm_user: request.user.sm_user = siteminder_user update_user = True + if request.user.is_bcsc != using_bc_services_card: + request.user.is_bcsc = using_bc_services_card + update_user = True if request.user.display_name != displayname: request.user.display_name = displayname update_user = True diff --git a/edivorce/apps/core/migrations/0024_bceiduser_is_bcsc.py b/edivorce/apps/core/migrations/0024_bceiduser_is_bcsc.py new file mode 100644 index 00000000..9a2ca2b1 --- /dev/null +++ b/edivorce/apps/core/migrations/0024_bceiduser_is_bcsc.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.15 on 2020-10-09 13:15 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0023_auto_20201006_1314'), + ] + + operations = [ + migrations.AddField( + model_name='bceiduser', + name='is_bcsc', + field=models.BooleanField(default=False), + ), + ] diff --git a/edivorce/apps/core/models.py b/edivorce/apps/core/models.py index 1350fd61..7a643d89 100644 --- a/edivorce/apps/core/models.py +++ b/edivorce/apps/core/models.py @@ -37,6 +37,9 @@ class BceidUser(models.Model): has_accepted_terms = models.BooleanField(default=False) """ Flag for accepting terms of service """ + is_bcsc = models.BooleanField(default=False) + """ Flag to identify BC Services Card users """ + @property def is_authenticated(self): return True