aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework
diff options
context:
space:
mode:
Diffstat (limited to 'rest_framework')
-rw-r--r--rest_framework/authentication.py4
-rw-r--r--rest_framework/compat.py13
-rw-r--r--rest_framework/permissions.py7
-rw-r--r--rest_framework/tests/test_authentication.py12
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)