diff options
Diffstat (limited to 'rest_framework/compat.py')
| -rw-r--r-- | rest_framework/compat.py | 22 | 
1 files changed, 15 insertions, 7 deletions
| diff --git a/rest_framework/compat.py b/rest_framework/compat.py index b4d37ab8..45045c0f 100644 --- a/rest_framework/compat.py +++ b/rest_framework/compat.py @@ -6,6 +6,7 @@ versions of django/python, and compatibility wrappers around optional packages.  # flake8: noqa  from __future__ import unicode_literals  import django +import inspect  from django.core.exceptions import ImproperlyConfigured  from django.conf import settings @@ -99,13 +100,6 @@ def get_concrete_model(model_cls):          return model_cls -# Django 1.5 add support for custom auth user model -if django.VERSION >= (1, 5): -    AUTH_USER_MODEL = settings.AUTH_USER_MODEL -else: -    AUTH_USER_MODEL = 'auth.User' - -  # View._allowed_methods only present from 1.5 onwards  if django.VERSION >= (1, 5):      from django.views.generic import View @@ -201,9 +195,23 @@ except ImportError:  try:      import oauth_provider      from oauth_provider.store import store as oauth_provider_store + +    # check_nonce's calling signature in django-oauth-plus changes sometime +    # between versions 2.0 and 2.2.1 +    def check_nonce(request, oauth_request, oauth_nonce, oauth_timestamp): +        check_nonce_args = inspect.getargspec(oauth_provider_store.check_nonce).args +        if 'timestamp' in check_nonce_args: +            return oauth_provider_store.check_nonce( +                request, oauth_request, oauth_nonce, oauth_timestamp +            ) +        return oauth_provider_store.check_nonce( +            request, oauth_request, oauth_nonce +        ) +  except (ImportError, ImproperlyConfigured):      oauth_provider = None      oauth_provider_store = None +    check_nonce = None  # OAuth 2 support is optional | 
