diff --git a/amadeus/settings.py b/amadeus/settings.py index 5056e96..14dfce0 100644 --- a/amadeus/settings.py +++ b/amadeus/settings.py @@ -43,6 +43,7 @@ INSTALLED_APPS = [ 'widget_tweaks', 'rolepermissions', + 'oauth2_provider', 'rest_framework', 'django_bootstrap_breadcrumbs', 's3direct', @@ -208,6 +209,21 @@ EMAIL_HOST_PASSWORD = 'amadeusteste' # SMTP CONFIG # EMAIL_BACKEND = 'core.smtp.AmadeusEmailBackend' +#API CONFIG STARTS +#TELL the rest framework to use a different backend +REST_FRAMEWORK = { + 'DEFAULT_AUTHENTICATION_CLASSES':( + 'oauth2_provider.ext.rest_framework.OAuth2Authentication',), + 'DEFAULT_PERMISSION_CLASSES':( + 'rest_framework.permissions.IsAuthenticated',) +} + +OAUTH2_PROVIDER = { + 'SCOPES':{'read':'Read scope', 'write': 'Write scope'} +} +#API CONFIG ENDS + + #s3direct # AWS keys diff --git a/amadeus/urls.py b/amadeus/urls.py index 2f3745e..afb6272 100644 --- a/amadeus/urls.py +++ b/amadeus/urls.py @@ -25,7 +25,8 @@ urlpatterns = [ url(r'^users/', include('users.urls', namespace = 'users')), url(r'^admin/', admin.site.urls), url(r'^', include('core.urls', namespace = 'core')), - + #API + url(r'^o/', include('oauth2_provider.urls', namespace='oauth2_provider')), #S3Direct url(r'^s3direct/', include('s3direct.urls')), url(r'^summernote/', include('django_summernote.urls')), diff --git a/core/serializers.py b/core/serializers.py index e4fe9fc..1139f7b 100644 --- a/core/serializers.py +++ b/core/serializers.py @@ -4,4 +4,5 @@ from .models import Log class LogSerializer(serializers.ModelSerializer): class Meta: model = Log + fields = '__all__' \ No newline at end of file diff --git a/core/urls.py b/core/urls.py index 626d06d..5fe7f2e 100644 --- a/core/urls.py +++ b/core/urls.py @@ -2,8 +2,11 @@ from django.conf.urls import url, include from django.contrib.auth import views as auth_views from django.contrib.auth.views import password_reset, password_reset_done,password_reset_confirm, password_reset_complete from . import views +from rest_framework import routers +router = routers.DefaultRouter() +router.register(r'logs', views.LogViewSet) urlpatterns = [ url(r'^$', views.login, name='home'), url(r'^register/$', views.RegisterUser.as_view(), name='register'), @@ -14,7 +17,8 @@ urlpatterns = [ url(r'^guest/$', views.GuestView.as_view(), name='guest'), #API REST - url(r'^logs/$', views.get_log), + url(r'^', include(router.urls)), + #url(r'^logs/$', views.get_log), #Reset Password @@ -30,3 +34,5 @@ urlpatterns = [ url(r'^done/$', password_reset_complete,{'template_name':'registration/passwor_reset_complete.html'}), ] + + diff --git a/core/views.py b/core/views.py index 1c7d9a9..810f1f3 100644 --- a/core/views.py +++ b/core/views.py @@ -16,8 +16,10 @@ from rolepermissions.shortcuts import assign_role from django.contrib.auth.decorators import login_required #API REST IMPORTS from .serializers import LogSerializer -from rest_framework.renderers import JSONRenderer -from rest_framework.parsers import JSONParser +from rest_framework import status, serializers, permissions, viewsets +from rest_framework.response import Response +from rest_framework.decorators import api_view + from .forms import RegisterUserForm from .decorators import log_decorator, notification_decorator @@ -135,19 +137,19 @@ class GuestView (ListView): context['categorys_courses'] = CourseCategory.objects.all() return context -class JSONResponse(HttpResponse): - """ - An HttpResponse that renders its content into JSON. - """ - def __init__(self, data, **kwargs): - content = JSONRenderer().render(data) - kwargs['content_type'] = 'application/json' - super(JSONResponse, self).__init__(content, **kwargs) + #REST API VIEWS @login_required +@api_view(['GET']) def get_log(request): if request.method == 'GET': logs = Log.objects.all() serializer = LogSerializer(logs, many=True) - return JSONResponse(serializer.data) + return Response(serializer.data) + + +class LogViewSet(viewsets.ModelViewSet): + permission_classes = [permissions.IsAuthenticated] + queryset = Log.objects.all() + serializer_class = LogSerializer -- libgit2 0.21.2