|
23 | 23 | from rest_framework.permissions import BasePermission |
24 | 24 | from rest_framework.response import Response |
25 | 25 | from rest_framework.reverse import reverse |
| 26 | +from rest_framework.throttling import AnonRateThrottle |
26 | 27 |
|
27 | 28 | from vulnerabilities.models import AdvisoryReference |
28 | 29 | from vulnerabilities.models import AdvisorySeverity |
|
38 | 39 | from vulnerabilities.models import VulnerabilityReference |
39 | 40 | from vulnerabilities.models import VulnerabilitySeverity |
40 | 41 | from vulnerabilities.models import Weakness |
| 42 | +from vulnerabilities.throttling import PermissionBasedUserRateThrottle |
41 | 43 |
|
42 | 44 |
|
43 | 45 | class WeaknessV2Serializer(serializers.ModelSerializer): |
@@ -199,6 +201,7 @@ class VulnerabilityV2ViewSet(viewsets.ReadOnlyModelViewSet): |
199 | 201 | queryset = Vulnerability.objects.all() |
200 | 202 | serializer_class = VulnerabilityV2Serializer |
201 | 203 | lookup_field = "vulnerability_id" |
| 204 | + throttle_classes = [AnonRateThrottle, PermissionBasedUserRateThrottle] |
202 | 205 |
|
203 | 206 | def get_queryset(self): |
204 | 207 | queryset = super().get_queryset() |
@@ -394,6 +397,7 @@ class PackageV2ViewSet(viewsets.ReadOnlyModelViewSet): |
394 | 397 | serializer_class = PackageV2Serializer |
395 | 398 | filter_backends = (filters.DjangoFilterBackend,) |
396 | 399 | filterset_class = PackageV2FilterSet |
| 400 | + throttle_classes = [AnonRateThrottle, PermissionBasedUserRateThrottle] |
397 | 401 |
|
398 | 402 | def get_queryset(self): |
399 | 403 | queryset = super().get_queryset() |
@@ -721,6 +725,7 @@ class CodeFixViewSet(viewsets.ReadOnlyModelViewSet): |
721 | 725 |
|
722 | 726 | queryset = CodeFix.objects.all() |
723 | 727 | serializer_class = CodeFixSerializer |
| 728 | + throttle_classes = [AnonRateThrottle, PermissionBasedUserRateThrottle] |
724 | 729 |
|
725 | 730 | def get_queryset(self): |
726 | 731 | """ |
@@ -863,6 +868,7 @@ class PipelineScheduleV2ViewSet(CreateListRetrieveUpdateViewSet): |
863 | 868 | serializer_class = PipelineScheduleAPISerializer |
864 | 869 | lookup_field = "pipeline_id" |
865 | 870 | lookup_value_regex = r"[\w.]+" |
| 871 | + throttle_classes = [AnonRateThrottle, PermissionBasedUserRateThrottle] |
866 | 872 |
|
867 | 873 | def get_serializer_class(self): |
868 | 874 | if self.action == "create": |
|
0 commit comments