Add check_view_permission method in schema generator instead of settings option

This commit is contained in:
Nik 2016-09-02 20:05:26 +03:00
parent 359fbef494
commit 0a3e911301
2 changed files with 9 additions and 9 deletions

View File

@ -9,7 +9,6 @@ from django.utils.encoding import force_text
from rest_framework import exceptions, serializers
from rest_framework.compat import coreapi, uritemplate, urlparse
from rest_framework.request import clone_request
from rest_framework.settings import api_settings
from rest_framework.views import APIView
@ -89,11 +88,8 @@ class SchemaGenerator(object):
if request is not None:
view.request = clone_request(request, method)
if api_settings.SCHEMA_CHECK_PERMISSIONS:
try:
view.check_permissions(view.request)
except exceptions.APIException:
continue
if not self.check_view_permission(view):
continue
else:
view.request = None
@ -167,6 +163,13 @@ class SchemaGenerator(object):
return True
def check_view_permission(self, view):
try:
view.check_permissions(view.request)
except exceptions.APIException:
return False
return True
def get_allowed_methods(self, callback):
"""
Return a list of the valid HTTP methods for this endpoint.

View File

@ -84,9 +84,6 @@ DEFAULTS = {
'EXCEPTION_HANDLER': 'rest_framework.views.exception_handler',
'NON_FIELD_ERRORS_KEY': 'non_field_errors',
# Schema generation
'SCHEMA_CHECK_PERMISSIONS': True,
# Testing
'TEST_REQUEST_RENDERER_CLASSES': (
'rest_framework.renderers.MultiPartRenderer',