Browse Source

Updated the eFiling poc to work with Keycloak

pull/172/head
Michael Olund 5 years ago
parent
commit
105b9ab520
3 changed files with 12 additions and 17 deletions
  1. +3
    -6
      edivorce/apps/core/efilinghub.py
  2. +5
    -1
      edivorce/apps/core/middleware/keycloak.py
  3. +4
    -10
      edivorce/apps/core/tests/test_efiling_hub.py

+ 3
- 6
edivorce/apps/core/efilinghub.py View File

@ -159,12 +159,9 @@ class EFilingHub:
# unavailable for a local eDivorce environment. Use an env specified mapping
# to figure out what we should pass through to eFiling Hub. This BCEID username
# needs to match with what you will be logging in with to the Test BCEID environment.
username = request.session.get('login_name', None)
if username:
if username in settings.EFILING_BCEID:
return settings.EFILING_BCEID[username]
return request.session.get('fake_bceid_guid', None)
return request.session.get('smgov_userguid', None)
# return 'ade9f711-d8c5-402e-8f70-5f0a1d4cc181'
return '53993f22-be67-43b9-94f2-222eca1b3bf7'
return request.session.get('bcgov_userguid', None)
guid = _get_raw_bceid(request)
if guid:


+ 5
- 1
edivorce/apps/core/middleware/keycloak.py View File

@ -23,6 +23,8 @@ class EDivorceKeycloakBackend(OIDCAuthenticationBackend):
user.user_guid = claims.get('universal-id', '')
user.save()
self.request.session['bcgov_userguid'] = user.user_guid
return user
def update_user(self, user, claims):
@ -33,6 +35,8 @@ class EDivorceKeycloakBackend(OIDCAuthenticationBackend):
user.user_guid = claims.get('universal-id', '')
user.save()
self.request.session['bcgov_userguid'] = user.user_guid
return user
def filter_users_by_claims(self, claims):
@ -43,6 +47,6 @@ class EDivorceKeycloakBackend(OIDCAuthenticationBackend):
def keycloak_logout(request):
redirect_uri = absolutify(request, settings.PROXY_URL_PREFIX + '/')
redirect_uri = absolutify(request, settings.FORCE_SCRIPT_NAME)
return f'{settings.KEYCLOAK_LOGOUT}?redirect_uri={redirect_uri}'

+ 4
- 10
edivorce/apps/core/tests/test_efiling_hub.py View File

@ -152,17 +152,11 @@ class EFilingHubTests(TransactionTestCase):
self.assertTrue('transaction_id' in self.request.session)
def test_bceid_get_current(self):
self.request.session['smgov_userguid'] = '70fc9ce1-0cd6-4170-b842-bbabb88452a9'
self.request.session['bcgov_userguid'] = '70fc9ce1-0cd6-4170-b842-bbabb88452a9'
with self.settings(DEPLOYMENT_TYPE='prod'):
bceid = self.hub._get_bceid(self.request)
self.assertEqual(bceid, '70fc9ce1-0cd6-4170-b842-bbabb88452a9')
def test_bceid_get_local_fake(self):
self.request.session['fake_bceid_guid'] = '70fc9ce1-0cd6-4170-b842-bbabb88452a9'
with self.settings(DEPLOYMENT_TYPE='localdev'):
bceid = self.hub._get_bceid(self.request)
self.assertEqual(bceid, '70fc9ce1-0cd6-4170-b842-bbabb88452a9')
def test_bceid_anonymous_user(self):
with self.settings(DEPLOYMENT_TYPE='prod'):
bceid = self.hub._get_bceid(self.request)
@ -194,7 +188,7 @@ class EFilingHubTests(TransactionTestCase):
@mock.patch('edivorce.apps.core.efilinghub.EFilingHub._get_api')
def test_upload_success(self, mock_get_api):
self.request.session['smgov_userguid'] = '70fc9ce1-0cd6-4170-b842-bbabb88452a9'
self.request.session['bcgov_userguid'] = '70fc9ce1-0cd6-4170-b842-bbabb88452a9'
with self.settings(DEPLOYMENT_TYPE='prod'):
mock_get_api.side_effect = [
self._mock_response(text=json.dumps(INITIAL_DOC_UPLOAD_RESPONSE)),
@ -208,7 +202,7 @@ class EFilingHubTests(TransactionTestCase):
@mock.patch('edivorce.apps.core.efilinghub.EFilingHub._get_api')
def test_upload_failed_initial_upload(self, mock_get_api):
self.request.session['smgov_userguid'] = '70fc9ce1-0cd6-4170-b842-bbabb88452a9'
self.request.session['bcgov_userguid'] = '70fc9ce1-0cd6-4170-b842-bbabb88452a9'
with self.settings(DEPLOYMENT_TYPE='prod'):
mock_get_api.side_effect = [
self._mock_response(text=json.dumps(INITIAL_DOC_UPLOAD_RESPONSE), status=401),
@ -220,7 +214,7 @@ class EFilingHubTests(TransactionTestCase):
@mock.patch('edivorce.apps.core.efilinghub.EFilingHub._get_api')
def test_upload_failed_generate_url(self, mock_get_api):
self.request.session['smgov_userguid'] = '70fc9ce1-0cd6-4170-b842-bbabb88452a9'
self.request.session['bcgov_userguid'] = '70fc9ce1-0cd6-4170-b842-bbabb88452a9'
with self.settings(DEPLOYMENT_TYPE='prod'):
mock_get_api.side_effect = [
self._mock_response(text=json.dumps(INITIAL_DOC_UPLOAD_RESPONSE)),


Loading…
Cancel
Save