from filters import TestRecordListFilter
from models import UserMachine, TestCategory
from pgperffarm.settings import DB_ENUM
+from users.views import UserMachinePermission
from .serializer import MachineHistoryRecordSerializer
from .serializer import TestRecordListSerializer, TestRecordDetailSerializer, LinuxInfoSerializer, MetaInfoSerializer, \
PGInfoSerializer, CreateTestRecordSerializer, CreateTestDateSetSerializer, TestResultSerializer
-from rest_framework.decorators import api_view
+from rest_framework.decorators import api_view, permission_classes
from rest_framework.response import Response
from rest_framework import mixins
from rest_framework import status
serializer_class = MachineHistoryRecordSerializer
# pagination_class = StandardResultsSetPagination
+
@api_view(['POST'])
+@permission_classes((UserMachinePermission, ))
def TestRecordCreate(request, format=None):
"""
Receive data from client
# jsLoads = json.loads(data[0])
# todo get machine by token
- test_machine = 1
+ test_machine = UserMachine.objects.filter(secret)
from django.db import transaction
from django.contrib.auth.backends import ModelBackend
from django.db.models import Q
-from django.shortcuts import render
# Create your views here.
-from models import UserProfile
+from rest_framework import permissions
+
+from .models import UserProfile, UserMachine
class CustomBackend(ModelBackend):
except Exception as e:
- return None
\ No newline at end of file
+ return None
+
+
+class UserMachinePermission(permissions.BasePermission):
+ """
+ Global permission check for blacklisted IPs.
+ """
+
+ def has_permission(self, request, view):
+ secret = request.data.secret
+ ret = UserMachine.objects.filter(machine_secret=secret,is_active=1).exists()
+ return ret