|
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 CodeFix |
28 | 29 | from vulnerabilities.models import Package |
|
32 | 33 | from vulnerabilities.models import VulnerabilityReference |
33 | 34 | from vulnerabilities.models import VulnerabilitySeverity |
34 | 35 | from vulnerabilities.models import Weakness |
| 36 | +from vulnerabilities.throttling import PermissionBasedUserRateThrottle |
35 | 37 |
|
36 | 38 |
|
37 | 39 | class WeaknessV2Serializer(serializers.ModelSerializer): |
@@ -134,6 +136,7 @@ class VulnerabilityV2ViewSet(viewsets.ReadOnlyModelViewSet): |
134 | 136 | queryset = Vulnerability.objects.all() |
135 | 137 | serializer_class = VulnerabilityV2Serializer |
136 | 138 | lookup_field = "vulnerability_id" |
| 139 | + throttle_classes = [AnonRateThrottle, PermissionBasedUserRateThrottle] |
137 | 140 |
|
138 | 141 | def get_queryset(self): |
139 | 142 | queryset = super().get_queryset() |
@@ -272,6 +275,7 @@ class PackageV2ViewSet(viewsets.ReadOnlyModelViewSet): |
272 | 275 | serializer_class = PackageV2Serializer |
273 | 276 | filter_backends = (filters.DjangoFilterBackend,) |
274 | 277 | filterset_class = PackageV2FilterSet |
| 278 | + throttle_classes = [AnonRateThrottle, PermissionBasedUserRateThrottle] |
275 | 279 |
|
276 | 280 | def get_queryset(self): |
277 | 281 | queryset = super().get_queryset() |
@@ -599,6 +603,7 @@ class CodeFixViewSet(viewsets.ReadOnlyModelViewSet): |
599 | 603 |
|
600 | 604 | queryset = CodeFix.objects.all() |
601 | 605 | serializer_class = CodeFixSerializer |
| 606 | + throttle_classes = [AnonRateThrottle, PermissionBasedUserRateThrottle] |
602 | 607 |
|
603 | 608 | def get_queryset(self): |
604 | 609 | """ |
@@ -741,6 +746,7 @@ class PipelineScheduleV2ViewSet(CreateListRetrieveUpdateViewSet): |
741 | 746 | serializer_class = PipelineScheduleAPISerializer |
742 | 747 | lookup_field = "pipeline_id" |
743 | 748 | lookup_value_regex = r"[\w.]+" |
| 749 | + throttle_classes = [AnonRateThrottle, PermissionBasedUserRateThrottle] |
744 | 750 |
|
745 | 751 | def get_serializer_class(self): |
746 | 752 | if self.action == "create": |
|
0 commit comments