Source code for deux.oauth2.exceptions
from __future__ import absolute_import, unicode_literals
import six
from oauthlib.oauth2 import OAuth2Error
from rest_framework import status
[docs]class InvalidLoginError(OAuth2Error):
"""
Generic exception for a failed login attempt through OAuth2. This exception
will result in a 400 Bad Request error in the OAuth API.
"""
def __init__(self, message):
"""
Initializes this error with the given error message.
:param message: The error message describing this exception.
"""
super(Exception, self).__init__(message)
@property
def twotuples(self):
"""
Returns a list of tuples that will be converted to the error response.
This method override the ``two_tuples`` method from ``OAuth2Error``.
"""
return [("detail", six.text_type(self))]
[docs]class ChallengeRequiredMessage(OAuth2Error):
"""
This exception is used to prompt the user for an MFA code.
This exception is used when a user passes in their username and password,
and they have MFA enabled.
"""
#: This exception returns a 200 response.
status_code = status.HTTP_200_OK
def __init__(self, challenge_type):
"""
Initalizes this exception class with a challenge type.
:param challenge_type: The challenge type the user should expect.
"""
super(Exception, self).__init__(challenge_type)
@property
def twotuples(self):
"""
Returns a list of tuples that will be converted to the error response.
This method override the ``two_tuples`` method from ``OAuth2Error``.
"""
return [
("mfa_required", True),
("mfa_type", six.text_type(self)),
]