This commit is contained in:
Eugene Pankov
2021-06-16 23:49:44 +02:00
parent 15d1fe4a46
commit 0b55657200
17 changed files with 665 additions and 191 deletions

View File

@@ -2,15 +2,16 @@ import os
from dataclasses import dataclass
from django.conf import settings
from django.contrib.auth import logout
from rest_framework import fields
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework.mixins import ListModelMixin, RetrieveModelMixin
from rest_framework.views import APIView
from rest_framework.viewsets import GenericViewSet, ModelViewSet
from rest_framework.serializers import ModelSerializer
from rest_framework.serializers import ModelSerializer, Field
from rest_framework_dataclasses.serializers import DataclassSerializer
from .models import Config
from .models import Config, User
@dataclass
@@ -61,6 +62,26 @@ class AppVersionViewSet(ListModelMixin, GenericViewSet):
).data)
class UserSerializer(ModelSerializer):
id = fields.IntegerField()
class Meta:
model = User
fields = ('id', 'username', 'active_config')
read_only_fields = ('id', 'username')
class UserViewSet(RetrieveModelMixin, GenericViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
def get_object(self):
if self.request.user.is_authenticated:
return self.request.user
return None
class LogoutView(APIView):
def post(self, request, format=None):
logout(request)
return Response(None)

View File

@@ -12,6 +12,7 @@ router.register('api/1/versions', api.AppVersionViewSet, basename='app-versions'
urlpatterns = [
path('api/1/auth/logout', api.LogoutView.as_view()),
path('api/1/user', api.UserViewSet.as_view({'get': 'retrieve'})),
path('', views.IndexView.as_view()),
path('terminal', views.TerminalView.as_view()),

View File

@@ -39,6 +39,7 @@ INSTALLED_APPS = [
'django.contrib.staticfiles',
'channels',
'rest_framework',
'social_django',
'terminus.app',
]

View File

@@ -19,5 +19,6 @@ from .app.urls import urlpatterns
urlpatterns = [
path('', include(urlpatterns)),
path('', include('social_django.urls', namespace='social')),
path('admin/', admin.site.urls),
]