diff options
Diffstat (limited to 'rest_framework')
| -rw-r--r-- | rest_framework/authentication.py | 4 | ||||
| -rw-r--r-- | rest_framework/compat.py | 13 | ||||
| -rw-r--r-- | rest_framework/permissions.py | 7 | ||||
| -rw-r--r-- | rest_framework/tests/test_authentication.py | 12 | 
4 files changed, 13 insertions, 23 deletions
| diff --git a/rest_framework/authentication.py b/rest_framework/authentication.py index e491ce5f..b0e88d88 100644 --- a/rest_framework/authentication.py +++ b/rest_framework/authentication.py @@ -326,11 +326,11 @@ class OAuth2Authentication(BaseAuthentication):          """          try: -            token = oauth2_provider.models.AccessToken.objects.select_related('user') +            token = oauth2_provider.oauth2.models.AccessToken.objects.select_related('user')              # provider_now switches to timezone aware datetime when              # the oauth2_provider version supports to it.              token = token.get(token=access_token, expires__gt=provider_now()) -        except oauth2_provider.models.AccessToken.DoesNotExist: +        except oauth2_provider.oauth2.models.AccessToken.DoesNotExist:              raise exceptions.AuthenticationFailed('Invalid token')          user = token.user diff --git a/rest_framework/compat.py b/rest_framework/compat.py index 3089b7fb..f60a180d 100644 --- a/rest_framework/compat.py +++ b/rest_framework/compat.py @@ -550,13 +550,8 @@ except (ImportError, ImproperlyConfigured):  # OAuth 2 support is optional  try: -    import provider.oauth2 as oauth2_provider -    from provider.oauth2 import models as oauth2_provider_models -    from provider.oauth2 import forms as oauth2_provider_forms -    from provider import scope as oauth2_provider_scope -    from provider import constants as oauth2_constants -    from provider import __version__ as provider_version -    if provider_version in ('0.2.3', '0.2.4'): +    import provider as oauth2_provider +    if oauth2_provider.__version__ in ('0.2.3', '0.2.4'):          # 0.2.3 and 0.2.4 are supported version that do not support          # timezone aware datetimes          import datetime @@ -566,10 +561,6 @@ try:          from django.utils.timezone import now as provider_now  except ImportError:      oauth2_provider = None -    oauth2_provider_models = None -    oauth2_provider_forms = None -    oauth2_provider_scope = None -    oauth2_constants = None      provider_now = None  # Handle lazy strings diff --git a/rest_framework/permissions.py b/rest_framework/permissions.py index f24a5123..6460056a 100644 --- a/rest_framework/permissions.py +++ b/rest_framework/permissions.py @@ -8,8 +8,7 @@ import warnings  SAFE_METHODS = ['GET', 'HEAD', 'OPTIONS']  from django.http import Http404 -from rest_framework.compat import (get_model_name, oauth2_provider_scope, -                                   oauth2_constants) +from rest_framework.compat import (get_model_name, oauth2_provider)  class BasePermission(object): @@ -219,8 +218,8 @@ class TokenHasReadWriteScope(BasePermission):          if hasattr(token, 'resource'):  # OAuth 1              return read_only or not request.auth.resource.is_readonly          elif hasattr(token, 'scope'):  # OAuth 2 -            required = oauth2_constants.READ if read_only else oauth2_constants.WRITE -            return oauth2_provider_scope.check(required, request.auth.scope) +            required = oauth2_provider.constants.READ if read_only else oauth2_provider.constants.WRITE +            return oauth2_provider.scope.check(required, request.auth.scope)          assert False, ('TokenHasReadWriteScope requires either the'          '`OAuthAuthentication` or `OAuth2Authentication` authentication ' diff --git a/rest_framework/tests/test_authentication.py b/rest_framework/tests/test_authentication.py index f072b81b..90383eef 100644 --- a/rest_framework/tests/test_authentication.py +++ b/rest_framework/tests/test_authentication.py @@ -19,7 +19,7 @@ from rest_framework.authentication import (  )  from rest_framework.authtoken.models import Token  from rest_framework.compat import patterns, url, include -from rest_framework.compat import oauth2_provider, oauth2_provider_models, oauth2_provider_scope +from rest_framework.compat import oauth2_provider  from rest_framework.compat import oauth, oauth_provider  from rest_framework.test import APIRequestFactory, APIClient  from rest_framework.views import APIView @@ -488,7 +488,7 @@ class OAuth2Tests(TestCase):          self.ACCESS_TOKEN = "access_token"          self.REFRESH_TOKEN = "refresh_token" -        self.oauth2_client = oauth2_provider_models.Client.objects.create( +        self.oauth2_client = oauth2_provider.oauth2.models.Client.objects.create(                  client_id=self.CLIENT_ID,                  client_secret=self.CLIENT_SECRET,                  redirect_uri='', @@ -497,12 +497,12 @@ class OAuth2Tests(TestCase):                  user=None,              ) -        self.access_token = oauth2_provider_models.AccessToken.objects.create( +        self.access_token = oauth2_provider.oauth2.models.AccessToken.objects.create(                  token=self.ACCESS_TOKEN,                  client=self.oauth2_client,                  user=self.user,              ) -        self.refresh_token = oauth2_provider_models.RefreshToken.objects.create( +        self.refresh_token = oauth2_provider.oauth2.models.RefreshToken.objects.create(                  user=self.user,                  access_token=self.access_token,                  client=self.oauth2_client @@ -581,7 +581,7 @@ class OAuth2Tests(TestCase):      def test_post_form_with_invalid_scope_failing_auth(self):          """Ensure POSTing with a readonly scope instead of a write scope fails"""          read_only_access_token = self.access_token -        read_only_access_token.scope = oauth2_provider_scope.SCOPE_NAME_DICT['read'] +        read_only_access_token.scope = oauth2_provider.scope.SCOPE_NAME_DICT['read']          read_only_access_token.save()          auth = self._create_authorization_header(token=read_only_access_token.token)          response = self.csrf_client.get('/oauth2-with-scope-test/', HTTP_AUTHORIZATION=auth) @@ -593,7 +593,7 @@ class OAuth2Tests(TestCase):      def test_post_form_with_valid_scope_passing_auth(self):          """Ensure POSTing with a write scope succeed"""          read_write_access_token = self.access_token -        read_write_access_token.scope = oauth2_provider_scope.SCOPE_NAME_DICT['write'] +        read_write_access_token.scope = oauth2_provider.scope.SCOPE_NAME_DICT['write']          read_write_access_token.save()          auth = self._create_authorization_header(token=read_write_access_token.token)          response = self.csrf_client.post('/oauth2-with-scope-test/', HTTP_AUTHORIZATION=auth) | 
