from django.shortcuts import redirect from rest_framework.views import APIView from rest_framework.response import Response #from rest_framework.permissions import IsAuthenticated # <-- Here import json from standards.models import Standards from rest_framework import serializers from .serializers import StandardsSerializer, ChatRoomSerializer, ChatRoomFullSerializer from rest_framework.decorators import api_view, permission_classes from rest_framework import status from rest_framework.authentication import SessionAuthentication, BasicAuthentication, TokenAuthentication from rest_framework.decorators import authentication_classes from chat.models import ChatRoom, ChatMessage from django.http import HttpResponseRedirect,HttpResponse, JsonResponse from timemanagement.models import Absence class GetUserId(APIView): #permission_classes = (IsAuthenticated,) # <-- And here def post(self, request): return Response({"userid" : self.request.user.pk}) @api_view(['POST', ]) #@permission_classes((IsAuthenticated,)) def getStandardList(request): standards = Standards.objects.filter(agency=request.user.profile.agency) ser = StandardsSerializer(standards, many=True) return Response(ser.data, status=status.HTTP_200_OK) @api_view(['POST', ]) #@permission_classes((IsAuthenticated,)) def getSingleStandard(request, pk): standard = Standards.objects.get(pk=int(pk)) ser = StandardsSerializer(standard, many=False) return Response(ser.data, status=status.HTTP_200_OK) @api_view(['POST', ]) #@permission_classes((IsAuthenticated,)) def logoutByToken(request): print(request) request.user.auth_token.delete() return Response(status=status.HTTP_200_OK) @api_view(['POST', ]) #@permission_classes((IsAuthenticated,)) def getchatrooms(request): chatrooms = ChatRoom.objects.filter(creator=request.user) | ChatRoom.objects.filter(chatmember_single=request.user) chatrooms_ser = ChatRoomSerializer(chatrooms, many=True) return Response(chatrooms_ser.data, status=status.HTTP_200_OK) @api_view(['POST', ]) #@permission_classes((IsAuthenticated,)) def getsinglechat(request, pk): chatroom = ChatRoom.objects.get(pk=pk) if chatroom.creator == request.user or chatroom.chatmember_single == request.user or (request.user in chatroom.chatmembers.all()): chatroom_ser = ChatRoomFullSerializer(chatroom, many=False) return Response(chatroom_ser.data, status=status.HTTP_200_OK) else: return Response(status=status.HTTP_403_FORBIDDEN) @api_view(['POST', ]) #@permission_classes((IsAuthenticated,)) def savenewchatmessage(request): room = ChatRoom.objects.get(pk=request.POST["room"]) if(request.user == room.creator or request.user == room.chatmember_single): newmessage = ChatMessage(room=room, author=request.user, content=request.POST["message"]) newmessage.save() room.messages.add(newmessage) room.save() return Response(status=status.HTTP_200_OK) else: return Response(status=status.HTTP_403_FORBIDDEN) # IMPORTED MODELS FOR MIGRATION from users.models import Agency from django.contrib.auth.models import User @api_view(['GET', ]) def migrateAgencyUsers(request, pk): datapackage = {} Ag = Agency.objects.get(pk=pk) for user in User.objects.filter(profile__agency=Ag): if(len(user.email) > 0 and len(user.first_name) > 0 and len(user.last_name) > 0): datapackage.update({str(user.pk) : {"userid" : user.email, "displayname" : user.first_name + " " + user.last_name}}) return JsonResponse(datapackage) from django.contrib.auth import login, logout from django.contrib.auth import update_session_auth_hash from django.contrib.sessions.models import Session @api_view(['GET', ]) def test(request, uid): user = User.objects.get(username=uid) [s.delete() for s in Session.objects.all() if s.get_decoded().get('_auth_user_hash') == user.get_session_auth_hash()] return JsonResponse({'res' : 'ok'})