diff --git a/src/mmw/apps/user/backends.py b/src/mmw/apps/user/backends.py index c5c3df69d..7197f3b01 100644 --- a/src/mmw/apps/user/backends.py +++ b/src/mmw/apps/user/backends.py @@ -1,11 +1,12 @@ # -*- coding: utf-8 -*- from django.core.exceptions import ObjectDoesNotExist +from django.contrib.auth.backends import BaseBackend from django.contrib.auth.models import User from apps.user.models import ItsiUser, ConcordUser -class SSOAuthenticationBackend(object): +class SSOAuthenticationBackend(BaseBackend): """ A custom authentication back-end for Single Sign On providers. @@ -20,7 +21,7 @@ def __init__(self, model, field): self.SSOUserModel = model self.SSOField = field - def authenticate(self, sso_id=None): + def authenticate(self, request=None, sso_id=None): if sso_id is not None: try: query = {self.SSOField: sso_id} diff --git a/src/mmw/apps/user/views.py b/src/mmw/apps/user/views.py index 94f13c5c4..abb9f7b14 100644 --- a/src/mmw/apps/user/views.py +++ b/src/mmw/apps/user/views.py @@ -283,7 +283,11 @@ def concord_auth(request): concord_user = session.get_user() except Exception as e: # Report OAuth error - rollbar.report_message(f'Concord OAuth Error: {e.message}', 'error') + message = 'Concord OAuth Error' + if hasattr(e, 'message'): + message += f': {e.message}' + + rollbar.report_message(message, 'error') return redirect('/error/sso') user = authenticate(sso_id=concord_user['id'])