+
+class DjangoAuthentication(object):
+ """
+ Authentication handler that always returns
+ True, so no authentication is needed, nor
+ initiated (`challenge` is missing.)
+ """
+ def is_authenticated(self, request):
+ return request.user.is_authenticated()
+
+ def challenge(self):
+ from django.http import HttpResponse
+ resp = HttpResponse("Authorization Required")
+ resp.status_code = 401
+ return resp
+
+
+def auth_resource(handler):
+ from django.conf import settings
+ if settings.DEBUG:
+ django_auth = DjangoAuthentication()
+ return CsrfExemptResource(handler=handler, authentication=django_auth)
+ return CsrfExemptResource(handler=handler, authentication=auth)
+
+
+book_list_resource = auth_resource(handler=handlers.BooksHandler)