Commit 4a5ba549dcdfe2d86cfb69f82bbc41776c2cdfff
1 parent
8d39cac8
Exists in
master
and in
5 other branches
set configuration fully working for oauth2 provider and core log methods
Showing
5 changed files
with
39 additions
and
13 deletions
Show diff stats
amadeus/settings.py
| ... | ... | @@ -43,6 +43,7 @@ INSTALLED_APPS = [ |
| 43 | 43 | |
| 44 | 44 | 'widget_tweaks', |
| 45 | 45 | 'rolepermissions', |
| 46 | + 'oauth2_provider', | |
| 46 | 47 | 'rest_framework', |
| 47 | 48 | 'django_bootstrap_breadcrumbs', |
| 48 | 49 | 's3direct', |
| ... | ... | @@ -208,6 +209,21 @@ EMAIL_HOST_PASSWORD = 'amadeusteste' |
| 208 | 209 | # SMTP CONFIG |
| 209 | 210 | # EMAIL_BACKEND = 'core.smtp.AmadeusEmailBackend' |
| 210 | 211 | |
| 212 | +#API CONFIG STARTS | |
| 213 | +#TELL the rest framework to use a different backend | |
| 214 | +REST_FRAMEWORK = { | |
| 215 | + 'DEFAULT_AUTHENTICATION_CLASSES':( | |
| 216 | + 'oauth2_provider.ext.rest_framework.OAuth2Authentication',), | |
| 217 | + 'DEFAULT_PERMISSION_CLASSES':( | |
| 218 | + 'rest_framework.permissions.IsAuthenticated',) | |
| 219 | +} | |
| 220 | + | |
| 221 | +OAUTH2_PROVIDER = { | |
| 222 | + 'SCOPES':{'read':'Read scope', 'write': 'Write scope'} | |
| 223 | +} | |
| 224 | +#API CONFIG ENDS | |
| 225 | + | |
| 226 | + | |
| 211 | 227 | #s3direct |
| 212 | 228 | |
| 213 | 229 | # AWS keys | ... | ... |
amadeus/urls.py
| ... | ... | @@ -25,7 +25,8 @@ urlpatterns = [ |
| 25 | 25 | url(r'^users/', include('users.urls', namespace = 'users')), |
| 26 | 26 | url(r'^admin/', admin.site.urls), |
| 27 | 27 | url(r'^', include('core.urls', namespace = 'core')), |
| 28 | - | |
| 28 | + #API | |
| 29 | + url(r'^o/', include('oauth2_provider.urls', namespace='oauth2_provider')), | |
| 29 | 30 | #S3Direct |
| 30 | 31 | url(r'^s3direct/', include('s3direct.urls')), |
| 31 | 32 | url(r'^summernote/', include('django_summernote.urls')), | ... | ... |
core/serializers.py
core/urls.py
| ... | ... | @@ -2,8 +2,11 @@ from django.conf.urls import url, include |
| 2 | 2 | from django.contrib.auth import views as auth_views |
| 3 | 3 | from django.contrib.auth.views import password_reset, password_reset_done,password_reset_confirm, password_reset_complete |
| 4 | 4 | from . import views |
| 5 | +from rest_framework import routers | |
| 5 | 6 | |
| 6 | 7 | |
| 8 | +router = routers.DefaultRouter() | |
| 9 | +router.register(r'logs', views.LogViewSet) | |
| 7 | 10 | urlpatterns = [ |
| 8 | 11 | url(r'^$', views.login, name='home'), |
| 9 | 12 | url(r'^register/$', views.RegisterUser.as_view(), name='register'), |
| ... | ... | @@ -14,7 +17,8 @@ urlpatterns = [ |
| 14 | 17 | url(r'^guest/$', views.GuestView.as_view(), name='guest'), |
| 15 | 18 | |
| 16 | 19 | #API REST |
| 17 | - url(r'^logs/$', views.get_log), | |
| 20 | + url(r'^', include(router.urls)), | |
| 21 | + #url(r'^logs/$', views.get_log), | |
| 18 | 22 | |
| 19 | 23 | #Reset Password |
| 20 | 24 | |
| ... | ... | @@ -30,3 +34,5 @@ urlpatterns = [ |
| 30 | 34 | url(r'^done/$', password_reset_complete,{'template_name':'registration/passwor_reset_complete.html'}), |
| 31 | 35 | |
| 32 | 36 | ] |
| 37 | + | |
| 38 | + | ... | ... |
core/views.py
| ... | ... | @@ -16,8 +16,10 @@ from rolepermissions.shortcuts import assign_role |
| 16 | 16 | from django.contrib.auth.decorators import login_required |
| 17 | 17 | #API REST IMPORTS |
| 18 | 18 | from .serializers import LogSerializer |
| 19 | -from rest_framework.renderers import JSONRenderer | |
| 20 | -from rest_framework.parsers import JSONParser | |
| 19 | +from rest_framework import status, serializers, permissions, viewsets | |
| 20 | +from rest_framework.response import Response | |
| 21 | +from rest_framework.decorators import api_view | |
| 22 | + | |
| 21 | 23 | |
| 22 | 24 | from .forms import RegisterUserForm |
| 23 | 25 | from .decorators import log_decorator, notification_decorator |
| ... | ... | @@ -135,19 +137,19 @@ class GuestView (ListView): |
| 135 | 137 | context['categorys_courses'] = CourseCategory.objects.all() |
| 136 | 138 | return context |
| 137 | 139 | |
| 138 | -class JSONResponse(HttpResponse): | |
| 139 | - """ | |
| 140 | - An HttpResponse that renders its content into JSON. | |
| 141 | - """ | |
| 142 | - def __init__(self, data, **kwargs): | |
| 143 | - content = JSONRenderer().render(data) | |
| 144 | - kwargs['content_type'] = 'application/json' | |
| 145 | - super(JSONResponse, self).__init__(content, **kwargs) | |
| 140 | + | |
| 146 | 141 | |
| 147 | 142 | #REST API VIEWS |
| 148 | 143 | @login_required |
| 144 | +@api_view(['GET']) | |
| 149 | 145 | def get_log(request): |
| 150 | 146 | if request.method == 'GET': |
| 151 | 147 | logs = Log.objects.all() |
| 152 | 148 | serializer = LogSerializer(logs, many=True) |
| 153 | - return JSONResponse(serializer.data) | |
| 149 | + return Response(serializer.data) | |
| 150 | + | |
| 151 | + | |
| 152 | +class LogViewSet(viewsets.ModelViewSet): | |
| 153 | + permission_classes = [permissions.IsAuthenticated] | |
| 154 | + queryset = Log.objects.all() | |
| 155 | + serializer_class = LogSerializer | ... | ... |