Просмотр исходного кода

Remove restriction enforcement from RestrictedQuerySet

Jeremy Stretch 5 лет назад
Родитель
Сommit
cb36f9fdb3
39 измененных файлов с 491 добавлено и 554 удалено
  1. 1 1
      netbox/circuits/api/views.py
  2. 15 15
      netbox/circuits/filters.py
  3. 2 2
      netbox/circuits/models.py
  4. 1 1
      netbox/circuits/signals.py
  5. 1 1
      netbox/circuits/tests/test_api.py
  6. 14 14
      netbox/circuits/tests/test_filters.py
  7. 3 6
      netbox/circuits/views.py
  8. 1 1
      netbox/dcim/api/views.py
  9. 77 77
      netbox/dcim/filters.py
  10. 24 24
      netbox/dcim/models/__init__.py
  11. 41 41
      netbox/dcim/tests/test_api.py
  12. 110 110
      netbox/dcim/tests/test_filters.py
  13. 15 15
      netbox/extras/filters.py
  14. 1 1
      netbox/extras/middleware.py
  15. 1 1
      netbox/extras/models/models.py
  16. 11 11
      netbox/extras/tests/test_filters.py
  17. 1 2
      netbox/ipam/api/views.py
  18. 36 36
      netbox/ipam/filters.py
  19. 14 14
      netbox/ipam/models.py
  20. 1 1
      netbox/ipam/tests/test_api.py
  21. 36 36
      netbox/ipam/tests/test_filters.py
  22. 2 2
      netbox/ipam/tests/test_models.py
  23. 3 3
      netbox/ipam/tests/test_ordering.py
  24. 3 8
      netbox/ipam/views.py
  25. 1 1
      netbox/netbox/authentication.py
  26. 4 4
      netbox/secrets/filters.py
  27. 4 4
      netbox/secrets/tests/test_filters.py
  28. 8 8
      netbox/tenancy/filters.py
  29. 3 3
      netbox/tenancy/tests/test_filters.py
  30. 3 3
      netbox/users/admin.py
  31. 0 4
      netbox/utilities/api.py
  32. 1 5
      netbox/utilities/mptt.py
  33. 0 43
      netbox/utilities/querysets.py
  34. 1 3
      netbox/utilities/testing/views.py
  35. 1 2
      netbox/virtualization/api/views.py
  36. 25 25
      netbox/virtualization/filters.py
  37. 2 2
      netbox/virtualization/models.py
  38. 3 3
      netbox/virtualization/tests/test_api.py
  39. 21 21
      netbox/virtualization/tests/test_filters.py

+ 1 - 1
netbox/circuits/api/views.py

@@ -52,7 +52,7 @@ class CircuitTypeViewSet(ModelViewSet):
 
 class CircuitViewSet(CustomFieldModelViewSet):
     queryset = Circuit.objects.prefetch_related(
-        Prefetch('terminations', queryset=CircuitTermination.objects.unrestricted().prefetch_related(
+        Prefetch('terminations', queryset=CircuitTermination.objects.prefetch_related(
             'site', 'connected_endpoint__device'
         )),
         'type', 'tenant', 'provider',

+ 15 - 15
netbox/circuits/filters.py

@@ -24,13 +24,13 @@ class ProviderFilterSet(BaseFilterSet, CustomFieldFilterSet, CreatedUpdatedFilte
         label='Search',
     )
     region_id = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='circuits__terminations__site__region',
         lookup_expr='in',
         label='Region (ID)',
     )
     region = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='circuits__terminations__site__region',
         lookup_expr='in',
         to_field_name='slug',
@@ -38,12 +38,12 @@ class ProviderFilterSet(BaseFilterSet, CustomFieldFilterSet, CreatedUpdatedFilte
     )
     site_id = django_filters.ModelMultipleChoiceFilter(
         field_name='circuits__terminations__site',
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         label='Site',
     )
     site = django_filters.ModelMultipleChoiceFilter(
         field_name='circuits__terminations__site__slug',
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         to_field_name='slug',
         label='Site (slug)',
     )
@@ -78,22 +78,22 @@ class CircuitFilterSet(BaseFilterSet, CustomFieldFilterSet, TenancyFilterSet, Cr
         label='Search',
     )
     provider_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=Provider.objects.unrestricted(),
+        queryset=Provider.objects.all(),
         label='Provider (ID)',
     )
     provider = django_filters.ModelMultipleChoiceFilter(
         field_name='provider__slug',
-        queryset=Provider.objects.unrestricted(),
+        queryset=Provider.objects.all(),
         to_field_name='slug',
         label='Provider (slug)',
     )
     type_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=CircuitType.objects.unrestricted(),
+        queryset=CircuitType.objects.all(),
         label='Circuit type (ID)',
     )
     type = django_filters.ModelMultipleChoiceFilter(
         field_name='type__slug',
-        queryset=CircuitType.objects.unrestricted(),
+        queryset=CircuitType.objects.all(),
         to_field_name='slug',
         label='Circuit type (slug)',
     )
@@ -103,23 +103,23 @@ class CircuitFilterSet(BaseFilterSet, CustomFieldFilterSet, TenancyFilterSet, Cr
     )
     site_id = django_filters.ModelMultipleChoiceFilter(
         field_name='terminations__site',
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         label='Site (ID)',
     )
     site = django_filters.ModelMultipleChoiceFilter(
         field_name='terminations__site__slug',
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         to_field_name='slug',
         label='Site (slug)',
     )
     region_id = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='terminations__site__region',
         lookup_expr='in',
         label='Region (ID)',
     )
     region = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='terminations__site__region',
         lookup_expr='in',
         to_field_name='slug',
@@ -150,16 +150,16 @@ class CircuitTerminationFilterSet(BaseFilterSet):
         label='Search',
     )
     circuit_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=Circuit.objects.unrestricted(),
+        queryset=Circuit.objects.all(),
         label='Circuit',
     )
     site_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         label='Site (ID)',
     )
     site = django_filters.ModelMultipleChoiceFilter(
         field_name='site__slug',
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         to_field_name='slug',
         label='Site (slug)',
     )

+ 2 - 2
netbox/circuits/models.py

@@ -238,7 +238,7 @@ class Circuit(ChangeLoggedModel, CustomFieldModel):
         return self.STATUS_CLASS_MAP.get(self.status)
 
     def _get_termination(self, side):
-        for ct in self.terminations.unrestricted():
+        for ct in self.terminations.all():
             if ct.term_side == side:
                 return ct
         return None
@@ -336,7 +336,7 @@ class CircuitTermination(CableTermination):
     def get_peer_termination(self):
         peer_side = 'Z' if self.term_side == 'A' else 'A'
         try:
-            return CircuitTermination.objects.unrestricted().prefetch_related('site').get(
+            return CircuitTermination.objects.prefetch_related('site').get(
                 circuit=self.circuit,
                 term_side=peer_side
             )

+ 1 - 1
netbox/circuits/signals.py

@@ -10,7 +10,7 @@ def update_circuit(instance, **kwargs):
     """
     When a CircuitTermination has been modified, update the last_updated time of its parent Circuit.
     """
-    circuits = Circuit.objects.unrestricted().filter(pk=instance.circuit_id)
+    circuits = Circuit.objects.filter(pk=instance.circuit_id)
     time = timezone.now()
     for circuit in circuits:
         circuit.last_updated = time

+ 1 - 1
netbox/circuits/tests/test_api.py

@@ -51,7 +51,7 @@ class ProviderTest(APIViewTestCases.APIViewTestCase):
         """
         Test retrieval of Graphs assigned to Providers.
         """
-        provider = self.model.objects.unrestricted().first()
+        provider = self.model.objects.first()
         ct = ContentType.objects.get(app_label='circuits', model='provider')
         graphs = (
             Graph(type=ct, name='Graph 1', source='http://example.com/graphs.py?provider={{ obj.slug }}&foo=1'),

+ 14 - 14
netbox/circuits/tests/test_filters.py

@@ -8,7 +8,7 @@ from tenancy.models import Tenant, TenantGroup
 
 
 class ProviderTestCase(TestCase):
-    queryset = Provider.objects.unrestricted()
+    queryset = Provider.objects.all()
     filterset = ProviderFilterSet
 
     @classmethod
@@ -75,14 +75,14 @@ class ProviderTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_site(self):
-        sites = Site.objects.unrestricted()[:2]
+        sites = Site.objects.all()[:2]
         params = {'site_id': [sites[0].pk, sites[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'site': [sites[0].slug, sites[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_region(self):
-        regions = Region.objects.unrestricted()[:2]
+        regions = Region.objects.all()[:2]
         params = {'region_id': [regions[0].pk, regions[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'region': [regions[0].slug, regions[1].slug]}
@@ -90,7 +90,7 @@ class ProviderTestCase(TestCase):
 
 
 class CircuitTypeTestCase(TestCase):
-    queryset = CircuitType.objects.unrestricted()
+    queryset = CircuitType.objects.all()
     filterset = CircuitTypeFilterSet
 
     @classmethod
@@ -116,7 +116,7 @@ class CircuitTypeTestCase(TestCase):
 
 
 class CircuitTestCase(TestCase):
-    queryset = Circuit.objects.unrestricted()
+    queryset = Circuit.objects.all()
     filterset = CircuitFilterSet
 
     @classmethod
@@ -199,14 +199,14 @@ class CircuitTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_provider(self):
-        provider = Provider.objects.unrestricted().first()
+        provider = Provider.objects.first()
         params = {'provider_id': [provider.pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
         params = {'provider': [provider.slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
 
     def test_type(self):
-        circuit_type = CircuitType.objects.unrestricted().first()
+        circuit_type = CircuitType.objects.first()
         params = {'type_id': [circuit_type.pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
         params = {'type': [circuit_type.slug]}
@@ -217,28 +217,28 @@ class CircuitTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_region(self):
-        regions = Region.objects.unrestricted()[:2]
+        regions = Region.objects.all()[:2]
         params = {'region_id': [regions[0].pk, regions[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'region': [regions[0].slug, regions[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_site(self):
-        sites = Site.objects.unrestricted()[:2]
+        sites = Site.objects.all()[:2]
         params = {'site_id': [sites[0].pk, sites[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'site': [sites[0].slug, sites[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_tenant(self):
-        tenants = Tenant.objects.unrestricted()[:2]
+        tenants = Tenant.objects.all()[:2]
         params = {'tenant_id': [tenants[0].pk, tenants[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         params = {'tenant': [tenants[0].slug, tenants[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_tenant_group(self):
-        tenant_groups = TenantGroup.objects.unrestricted()[:2]
+        tenant_groups = TenantGroup.objects.all()[:2]
         params = {'tenant_group_id': [tenant_groups[0].pk, tenant_groups[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         params = {'tenant_group': [tenant_groups[0].slug, tenant_groups[1].slug]}
@@ -246,7 +246,7 @@ class CircuitTestCase(TestCase):
 
 
 class CircuitTerminationTestCase(TestCase):
-    queryset = CircuitTermination.objects.unrestricted()
+    queryset = CircuitTermination.objects.all()
     filterset = CircuitTerminationFilterSet
 
     @classmethod
@@ -303,12 +303,12 @@ class CircuitTerminationTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_circuit_id(self):
-        circuits = Circuit.objects.unrestricted()[:2]
+        circuits = Circuit.objects.all()[:2]
         params = {'circuit_id': [circuits[0].pk, circuits[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_site(self):
-        sites = Site.objects.unrestricted()[:2]
+        sites = Site.objects.all()[:2]
         params = {'site_id': [sites[0].pk, sites[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         params = {'site': [sites[0].slug, sites[1].slug]}

+ 3 - 6
netbox/circuits/views.py

@@ -120,8 +120,7 @@ class CircuitTypeBulkDeleteView(BulkDeleteView):
 
 class CircuitListView(ObjectListView):
     queryset = Circuit.objects.prefetch_related(
-        Prefetch('terminations', CircuitTermination.objects.unrestricted()),
-        'provider', 'type', 'tenant'
+        'provider', 'type', 'tenant', 'terminations'
     ).annotate_sites()
     filterset = filters.CircuitFilterSet
     filterset_form = forms.CircuitFilterForm
@@ -175,8 +174,7 @@ class CircuitBulkImportView(BulkImportView):
 
 class CircuitBulkEditView(BulkEditView):
     queryset = Circuit.objects.prefetch_related(
-        Prefetch('terminations', CircuitTermination.objects.unrestricted()),
-        'provider', 'type', 'tenant'
+        'provider', 'type', 'tenant', 'terminations'
     )
     filterset = filters.CircuitFilterSet
     table = tables.CircuitTable
@@ -185,8 +183,7 @@ class CircuitBulkEditView(BulkEditView):
 
 class CircuitBulkDeleteView(BulkDeleteView):
     queryset = Circuit.objects.prefetch_related(
-        Prefetch('terminations', CircuitTermination.objects.unrestricted()),
-        'provider', 'type', 'tenant'
+        'provider', 'type', 'tenant', 'terminations'
     )
     filterset = filters.CircuitFilterSet
     table = tables.CircuitTable

+ 1 - 1
netbox/dcim/api/views.py

@@ -682,7 +682,7 @@ class ConnectedDeviceViewSet(ViewSet):
 
         # Determine local interface from peer interface's connection
         peer_interface = get_object_or_404(
-            Interface.objects.unrestricted(),
+            Interface.objects.all(),
             device__name=peer_device_name,
             name=peer_interface_name
         )

+ 77 - 77
netbox/dcim/filters.py

@@ -62,12 +62,12 @@ __all__ = (
 
 class RegionFilterSet(BaseFilterSet, NameSlugSearchFilterSet):
     parent_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         label='Parent region (ID)',
     )
     parent = django_filters.ModelMultipleChoiceFilter(
         field_name='parent__slug',
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         to_field_name='slug',
         label='Parent region (slug)',
     )
@@ -87,13 +87,13 @@ class SiteFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldFilterSet, Creat
         null_value=None
     )
     region_id = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='region',
         lookup_expr='in',
         label='Region (ID)',
     )
     region = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='region',
         lookup_expr='in',
         to_field_name='slug',
@@ -131,35 +131,35 @@ class SiteFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldFilterSet, Creat
 
 class RackGroupFilterSet(BaseFilterSet, NameSlugSearchFilterSet):
     region_id = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='site__region',
         lookup_expr='in',
         label='Region (ID)',
     )
     region = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='site__region',
         lookup_expr='in',
         to_field_name='slug',
         label='Region (slug)',
     )
     site_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         label='Site (ID)',
     )
     site = django_filters.ModelMultipleChoiceFilter(
         field_name='site__slug',
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         to_field_name='slug',
         label='Site (slug)',
     )
     parent_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=RackGroup.objects.unrestricted(),
+        queryset=RackGroup.objects.all(),
         label='Rack group (ID)',
     )
     parent = django_filters.ModelMultipleChoiceFilter(
         field_name='parent__slug',
-        queryset=RackGroup.objects.unrestricted(),
+        queryset=RackGroup.objects.all(),
         to_field_name='slug',
         label='Rack group (slug)',
     )
@@ -182,36 +182,36 @@ class RackFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldFilterSet, Creat
         label='Search',
     )
     region_id = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='site__region',
         lookup_expr='in',
         label='Region (ID)',
     )
     region = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='site__region',
         lookup_expr='in',
         to_field_name='slug',
         label='Region (slug)',
     )
     site_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         label='Site (ID)',
     )
     site = django_filters.ModelMultipleChoiceFilter(
         field_name='site__slug',
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         to_field_name='slug',
         label='Site (slug)',
     )
     group_id = TreeNodeMultipleChoiceFilter(
-        queryset=RackGroup.objects.unrestricted(),
+        queryset=RackGroup.objects.all(),
         field_name='group',
         lookup_expr='in',
         label='Rack group (ID)',
     )
     group = TreeNodeMultipleChoiceFilter(
-        queryset=RackGroup.objects.unrestricted(),
+        queryset=RackGroup.objects.all(),
         field_name='group',
         lookup_expr='in',
         to_field_name='slug',
@@ -222,12 +222,12 @@ class RackFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldFilterSet, Creat
         null_value=None
     )
     role_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=RackRole.objects.unrestricted(),
+        queryset=RackRole.objects.all(),
         label='Role (ID)',
     )
     role = django_filters.ModelMultipleChoiceFilter(
         field_name='role__slug',
-        queryset=RackRole.objects.unrestricted(),
+        queryset=RackRole.objects.all(),
         to_field_name='slug',
         label='Role (slug)',
     )
@@ -261,28 +261,28 @@ class RackReservationFilterSet(BaseFilterSet, TenancyFilterSet):
         label='Search',
     )
     rack_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=Rack.objects.unrestricted(),
+        queryset=Rack.objects.all(),
         label='Rack (ID)',
     )
     site_id = django_filters.ModelMultipleChoiceFilter(
         field_name='rack__site',
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         label='Site (ID)',
     )
     site = django_filters.ModelMultipleChoiceFilter(
         field_name='rack__site__slug',
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         to_field_name='slug',
         label='Site (slug)',
     )
     group_id = TreeNodeMultipleChoiceFilter(
-        queryset=RackGroup.objects.unrestricted(),
+        queryset=RackGroup.objects.all(),
         field_name='rack__group',
         lookup_expr='in',
         label='Rack group (ID)',
     )
     group = TreeNodeMultipleChoiceFilter(
-        queryset=RackGroup.objects.unrestricted(),
+        queryset=RackGroup.objects.all(),
         field_name='rack__group',
         lookup_expr='in',
         to_field_name='slug',
@@ -328,12 +328,12 @@ class DeviceTypeFilterSet(BaseFilterSet, CustomFieldFilterSet, CreatedUpdatedFil
         label='Search',
     )
     manufacturer_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=Manufacturer.objects.unrestricted(),
+        queryset=Manufacturer.objects.all(),
         label='Manufacturer (ID)',
     )
     manufacturer = django_filters.ModelMultipleChoiceFilter(
         field_name='manufacturer__slug',
-        queryset=Manufacturer.objects.unrestricted(),
+        queryset=Manufacturer.objects.all(),
         to_field_name='slug',
         label='Manufacturer (slug)',
     )
@@ -410,7 +410,7 @@ class DeviceTypeFilterSet(BaseFilterSet, CustomFieldFilterSet, CreatedUpdatedFil
 
 class DeviceTypeComponentFilterSet(NameSlugSearchFilterSet):
     devicetype_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=DeviceType.objects.unrestricted(),
+        queryset=DeviceType.objects.all(),
         field_name='device_type_id',
         label='Device type (ID)',
     )
@@ -482,12 +482,12 @@ class DeviceRoleFilterSet(BaseFilterSet, NameSlugSearchFilterSet):
 class PlatformFilterSet(BaseFilterSet, NameSlugSearchFilterSet):
     manufacturer_id = django_filters.ModelMultipleChoiceFilter(
         field_name='manufacturer',
-        queryset=Manufacturer.objects.unrestricted(),
+        queryset=Manufacturer.objects.all(),
         label='Manufacturer (ID)',
     )
     manufacturer = django_filters.ModelMultipleChoiceFilter(
         field_name='manufacturer__slug',
-        queryset=Manufacturer.objects.unrestricted(),
+        queryset=Manufacturer.objects.all(),
         to_field_name='slug',
         label='Manufacturer (slug)',
     )
@@ -510,81 +510,81 @@ class DeviceFilterSet(
     )
     manufacturer_id = django_filters.ModelMultipleChoiceFilter(
         field_name='device_type__manufacturer',
-        queryset=Manufacturer.objects.unrestricted(),
+        queryset=Manufacturer.objects.all(),
         label='Manufacturer (ID)',
     )
     manufacturer = django_filters.ModelMultipleChoiceFilter(
         field_name='device_type__manufacturer__slug',
-        queryset=Manufacturer.objects.unrestricted(),
+        queryset=Manufacturer.objects.all(),
         to_field_name='slug',
         label='Manufacturer (slug)',
     )
     device_type_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=DeviceType.objects.unrestricted(),
+        queryset=DeviceType.objects.all(),
         label='Device type (ID)',
     )
     role_id = django_filters.ModelMultipleChoiceFilter(
         field_name='device_role_id',
-        queryset=DeviceRole.objects.unrestricted(),
+        queryset=DeviceRole.objects.all(),
         label='Role (ID)',
     )
     role = django_filters.ModelMultipleChoiceFilter(
         field_name='device_role__slug',
-        queryset=DeviceRole.objects.unrestricted(),
+        queryset=DeviceRole.objects.all(),
         to_field_name='slug',
         label='Role (slug)',
     )
     platform_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=Platform.objects.unrestricted(),
+        queryset=Platform.objects.all(),
         label='Platform (ID)',
     )
     platform = django_filters.ModelMultipleChoiceFilter(
         field_name='platform__slug',
-        queryset=Platform.objects.unrestricted(),
+        queryset=Platform.objects.all(),
         to_field_name='slug',
         label='Platform (slug)',
     )
     region_id = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='site__region',
         lookup_expr='in',
         label='Region (ID)',
     )
     region = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='site__region',
         lookup_expr='in',
         to_field_name='slug',
         label='Region (slug)',
     )
     site_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         label='Site (ID)',
     )
     site = django_filters.ModelMultipleChoiceFilter(
         field_name='site__slug',
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         to_field_name='slug',
         label='Site name (slug)',
     )
     rack_group_id = TreeNodeMultipleChoiceFilter(
-        queryset=RackGroup.objects.unrestricted(),
+        queryset=RackGroup.objects.all(),
         field_name='rack__group',
         lookup_expr='in',
         label='Rack group (ID)',
     )
     rack_id = django_filters.ModelMultipleChoiceFilter(
         field_name='rack',
-        queryset=Rack.objects.unrestricted(),
+        queryset=Rack.objects.all(),
         label='Rack (ID)',
     )
     cluster_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=Cluster.objects.unrestricted(),
+        queryset=Cluster.objects.all(),
         label='VM cluster (ID)',
     )
     model = django_filters.ModelMultipleChoiceFilter(
         field_name='device_type__slug',
-        queryset=DeviceType.objects.unrestricted(),
+        queryset=DeviceType.objects.all(),
         to_field_name='slug',
         label='Device model (slug)',
     )
@@ -609,7 +609,7 @@ class DeviceFilterSet(
     )
     virtual_chassis_id = django_filters.ModelMultipleChoiceFilter(
         field_name='virtual_chassis',
-        queryset=VirtualChassis.objects.unrestricted(),
+        queryset=VirtualChassis.objects.all(),
         label='Virtual chassis (ID)',
     )
     virtual_chassis_member = django_filters.BooleanFilter(
@@ -707,13 +707,13 @@ class DeviceComponentFilterSet(django_filters.FilterSet):
         label='Search',
     )
     region_id = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='device__site__region',
         lookup_expr='in',
         label='Region (ID)',
     )
     region = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='device__site__region',
         lookup_expr='in',
         to_field_name='slug',
@@ -721,22 +721,22 @@ class DeviceComponentFilterSet(django_filters.FilterSet):
     )
     site_id = django_filters.ModelMultipleChoiceFilter(
         field_name='device__site',
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         label='Site (ID)',
     )
     site = django_filters.ModelMultipleChoiceFilter(
         field_name='device__site__slug',
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         to_field_name='slug',
         label='Site name (slug)',
     )
     device_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=Device.objects.unrestricted(),
+        queryset=Device.objects.all(),
         label='Device (ID)',
     )
     device = django_filters.ModelMultipleChoiceFilter(
         field_name='device__name',
-        queryset=Device.objects.unrestricted(),
+        queryset=Device.objects.all(),
         to_field_name='name',
         label='Device (name)',
     )
@@ -844,7 +844,7 @@ class InterfaceFilterSet(BaseFilterSet, DeviceComponentFilterSet):
     )
     lag_id = django_filters.ModelMultipleChoiceFilter(
         field_name='lag',
-        queryset=Interface.objects.unrestricted(),
+        queryset=Interface.objects.all(),
         label='LAG interface (ID)',
     )
     mac_address = MultiValueMACAddressFilter()
@@ -951,13 +951,13 @@ class InventoryItemFilterSet(BaseFilterSet, DeviceComponentFilterSet):
         label='Search',
     )
     region_id = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='device__site__region',
         lookup_expr='in',
         label='Region (ID)',
     )
     region = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='device__site__region',
         lookup_expr='in',
         to_field_name='slug',
@@ -965,35 +965,35 @@ class InventoryItemFilterSet(BaseFilterSet, DeviceComponentFilterSet):
     )
     site_id = django_filters.ModelMultipleChoiceFilter(
         field_name='device__site',
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         label='Site (ID)',
     )
     site = django_filters.ModelMultipleChoiceFilter(
         field_name='device__site__slug',
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         to_field_name='slug',
         label='Site name (slug)',
     )
     device_id = django_filters.ModelChoiceFilter(
-        queryset=Device.objects.unrestricted(),
+        queryset=Device.objects.all(),
         label='Device (ID)',
     )
     device = django_filters.ModelChoiceFilter(
-        queryset=Device.objects.unrestricted(),
+        queryset=Device.objects.all(),
         to_field_name='name',
         label='Device (name)',
     )
     parent_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=InventoryItem.objects.unrestricted(),
+        queryset=InventoryItem.objects.all(),
         label='Parent inventory item (ID)',
     )
     manufacturer_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=Manufacturer.objects.unrestricted(),
+        queryset=Manufacturer.objects.all(),
         label='Manufacturer (ID)',
     )
     manufacturer = django_filters.ModelMultipleChoiceFilter(
         field_name='manufacturer__slug',
-        queryset=Manufacturer.objects.unrestricted(),
+        queryset=Manufacturer.objects.all(),
         to_field_name='slug',
         label='Manufacturer (slug)',
     )
@@ -1024,13 +1024,13 @@ class VirtualChassisFilterSet(BaseFilterSet):
         label='Search',
     )
     region_id = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='master__site__region',
         lookup_expr='in',
         label='Region (ID)',
     )
     region = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='master__site__region',
         lookup_expr='in',
         to_field_name='slug',
@@ -1038,23 +1038,23 @@ class VirtualChassisFilterSet(BaseFilterSet):
     )
     site_id = django_filters.ModelMultipleChoiceFilter(
         field_name='master__site',
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         label='Site (ID)',
     )
     site = django_filters.ModelMultipleChoiceFilter(
         field_name='master__site__slug',
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         to_field_name='slug',
         label='Site name (slug)',
     )
     tenant_id = django_filters.ModelMultipleChoiceFilter(
         field_name='master__tenant',
-        queryset=Tenant.objects.unrestricted(),
+        queryset=Tenant.objects.all(),
         label='Tenant (ID)',
     )
     tenant = django_filters.ModelMultipleChoiceFilter(
         field_name='master__tenant__slug',
-        queryset=Tenant.objects.unrestricted(),
+        queryset=Tenant.objects.all(),
         to_field_name='slug',
         label='Tenant (slug)',
     )
@@ -1240,30 +1240,30 @@ class PowerPanelFilterSet(BaseFilterSet):
         label='Search',
     )
     region_id = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='site__region',
         lookup_expr='in',
         label='Region (ID)',
     )
     region = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='site__region',
         lookup_expr='in',
         to_field_name='slug',
         label='Region (slug)',
     )
     site_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         label='Site (ID)',
     )
     site = django_filters.ModelMultipleChoiceFilter(
         field_name='site__slug',
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         to_field_name='slug',
         label='Site name (slug)',
     )
     rack_group_id = TreeNodeMultipleChoiceFilter(
-        queryset=RackGroup.objects.unrestricted(),
+        queryset=RackGroup.objects.all(),
         field_name='rack_group',
         lookup_expr='in',
         label='Rack group (ID)',
@@ -1289,13 +1289,13 @@ class PowerFeedFilterSet(BaseFilterSet, CustomFieldFilterSet, CreatedUpdatedFilt
         label='Search',
     )
     region_id = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='power_panel__site__region',
         lookup_expr='in',
         label='Region (ID)',
     )
     region = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='power_panel__site__region',
         lookup_expr='in',
         to_field_name='slug',
@@ -1303,22 +1303,22 @@ class PowerFeedFilterSet(BaseFilterSet, CustomFieldFilterSet, CreatedUpdatedFilt
     )
     site_id = django_filters.ModelMultipleChoiceFilter(
         field_name='power_panel__site',
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         label='Site (ID)',
     )
     site = django_filters.ModelMultipleChoiceFilter(
         field_name='power_panel__site__slug',
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         to_field_name='slug',
         label='Site name (slug)',
     )
     power_panel_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=PowerPanel.objects.unrestricted(),
+        queryset=PowerPanel.objects.all(),
         label='Power panel (ID)',
     )
     rack_id = django_filters.ModelMultipleChoiceFilter(
         field_name='rack',
-        queryset=Rack.objects.unrestricted(),
+        queryset=Rack.objects.all(),
         label='Rack (ID)',
     )
     tag = TagFilter()

+ 24 - 24
netbox/dcim/models/__init__.py

@@ -581,7 +581,7 @@ class Rack(ChangeLoggedModel, CustomFieldModel):
 
         if self.pk:
             # Validate that Rack is tall enough to house the installed Devices
-            top_device = Device.objects.unrestricted().filter(
+            top_device = Device.objects.filter(
                 rack=self
             ).exclude(
                 position__isnull=True
@@ -606,13 +606,13 @@ class Rack(ChangeLoggedModel, CustomFieldModel):
         # Record the original site assignment for this rack.
         _site_id = None
         if self.pk:
-            _site_id = Rack.objects.unrestricted().get(pk=self.pk).site_id
+            _site_id = Rack.objects.get(pk=self.pk).site_id
 
         super().save(*args, **kwargs)
 
         # Update racked devices if the assigned Site has been changed.
         if _site_id is not None and self.site_id != _site_id:
-            devices = Device.objects.unrestricted().filter(rack=self)
+            devices = Device.objects.filter(rack=self)
             for device in devices:
                 device.site = self.site
                 device.save()
@@ -674,7 +674,7 @@ class Rack(ChangeLoggedModel, CustomFieldModel):
 
         # Add devices to rack units list
         if self.pk:
-            queryset = Device.objects.unrestricted().prefetch_related(
+            queryset = Device.objects.prefetch_related(
                 'device_type',
                 'device_type__manufacturer',
                 'device_role'
@@ -712,7 +712,7 @@ class Rack(ChangeLoggedModel, CustomFieldModel):
         :param exclude: List of devices IDs to exclude (useful when moving a device within a rack)
         """
         # Gather all devices which consume U space within the rack
-        devices = self.devices.unrestricted().prefetch_related('device_type').filter(position__gte=1)
+        devices = self.devices.prefetch_related('device_type').filter(position__gte=1)
         if exclude is not None:
             devices = devices.exclude(pk__in=exclude)
 
@@ -742,7 +742,7 @@ class Rack(ChangeLoggedModel, CustomFieldModel):
         Return a dictionary mapping all reserved units within the rack to their reservation.
         """
         reserved_units = {}
-        for r in self.reservations.unrestricted():
+        for r in self.reservations.all():
             for u in r.units:
                 reserved_units[u] = r
         return reserved_units
@@ -796,7 +796,7 @@ class Rack(ChangeLoggedModel, CustomFieldModel):
         """
         Determine the utilization rate of power in the rack and return it as a percentage.
         """
-        power_stats = PowerFeed.objects.unrestricted().filter(
+        power_stats = PowerFeed.objects.filter(
             rack=self
         ).annotate(
             allocated_draw_total=Sum('connected_endpoint__poweroutlets__connected_endpoint__allocated_draw'),
@@ -1130,7 +1130,7 @@ class DeviceType(ChangeLoggedModel, CustomFieldModel):
         # room to expand within their racks. This validation will impose a very high performance penalty when there are
         # many instances to check, but increasing the u_height of a DeviceType should be a very rare occurrence.
         if self.pk and self.u_height > self._original_u_height:
-            for d in Device.objects.unrestricted().filter(device_type=self, position__isnull=False):
+            for d in Device.objects.filter(device_type=self, position__isnull=False):
                 face_required = None if self.is_full_depth else d.face
                 u_available = d.rack.get_available_units(
                     u_height=self.u_height,
@@ -1145,7 +1145,7 @@ class DeviceType(ChangeLoggedModel, CustomFieldModel):
 
         # If modifying the height of an existing DeviceType to 0U, check for any instances assigned to a rack position.
         elif self.pk and self._original_u_height > 0 and self.u_height == 0:
-            racked_instance_count = Device.objects.unrestricted().filter(
+            racked_instance_count = Device.objects.filter(
                 device_type=self,
                 position__isnull=False
             ).count()
@@ -1501,7 +1501,7 @@ class Device(ChangeLoggedModel, ConfigContextModel, CustomFieldModel):
         # because Django does not consider two NULL fields to be equal, and thus will not trigger a violation
         # of the uniqueness constraint without manual intervention.
         if self.name and self.tenant is None:
-            if Device.objects.unrestricted().exclude(pk=self.pk).filter(
+            if Device.objects.exclude(pk=self.pk).filter(
                     name=self.name,
                     site=self.site,
                     tenant__isnull=True
@@ -1635,32 +1635,32 @@ class Device(ChangeLoggedModel, ConfigContextModel, CustomFieldModel):
         # If this is a new Device, instantiate all of the related components per the DeviceType definition
         if is_new:
             ConsolePort.objects.bulk_create(
-                [x.instantiate(self) for x in self.device_type.consoleporttemplates.unrestricted()]
+                [x.instantiate(self) for x in self.device_type.consoleporttemplates.all()]
             )
             ConsoleServerPort.objects.bulk_create(
-                [x.instantiate(self) for x in self.device_type.consoleserverporttemplates.unrestricted()]
+                [x.instantiate(self) for x in self.device_type.consoleserverporttemplates.all()]
             )
             PowerPort.objects.bulk_create(
-                [x.instantiate(self) for x in self.device_type.powerporttemplates.unrestricted()]
+                [x.instantiate(self) for x in self.device_type.powerporttemplates.all()]
             )
             PowerOutlet.objects.bulk_create(
-                [x.instantiate(self) for x in self.device_type.poweroutlettemplates.unrestricted()]
+                [x.instantiate(self) for x in self.device_type.poweroutlettemplates.all()]
             )
             Interface.objects.bulk_create(
-                [x.instantiate(self) for x in self.device_type.interfacetemplates.unrestricted()]
+                [x.instantiate(self) for x in self.device_type.interfacetemplates.all()]
             )
             RearPort.objects.bulk_create(
-                [x.instantiate(self) for x in self.device_type.rearporttemplates.unrestricted()]
+                [x.instantiate(self) for x in self.device_type.rearporttemplates.all()]
             )
             FrontPort.objects.bulk_create(
-                [x.instantiate(self) for x in self.device_type.frontporttemplates.unrestricted()]
+                [x.instantiate(self) for x in self.device_type.frontporttemplates.all()]
             )
             DeviceBay.objects.bulk_create(
-                [x.instantiate(self) for x in self.device_type.devicebaytemplates.unrestricted()]
+                [x.instantiate(self) for x in self.device_type.devicebaytemplates.all()]
             )
 
         # Update Site and Rack assignment for any child Devices
-        devices = Device.objects.unrestricted().filter(parent_bay__device=self)
+        devices = Device.objects.filter(parent_bay__device=self)
         for device in devices:
             device.site = self.site
             device.rack = self.rack
@@ -1730,7 +1730,7 @@ class Device(ChangeLoggedModel, ConfigContextModel, CustomFieldModel):
         filter = Q(device=self)
         if self.virtual_chassis and self.virtual_chassis.master == self:
             filter |= Q(device__virtual_chassis=self.virtual_chassis, mgmt_only=False)
-        return Interface.objects.unrestricted().filter(filter)
+        return Interface.objects.filter(filter)
 
     def get_cables(self, pk_list=False):
         """
@@ -1751,7 +1751,7 @@ class Device(ChangeLoggedModel, ConfigContextModel, CustomFieldModel):
         """
         Return the set of child Devices installed in DeviceBays within this Device.
         """
-        return Device.objects.unrestricted().filter(parent_bay__device=self.pk)
+        return Device.objects.filter(parent_bay__device=self.pk)
 
     def get_status_class(self):
         return self.STATUS_CLASS_MAP.get(self.status)
@@ -1808,7 +1808,7 @@ class VirtualChassis(ChangeLoggedModel):
     def delete(self, *args, **kwargs):
 
         # Check for LAG interfaces split across member chassis
-        interfaces = Interface.objects.unrestricted().filter(
+        interfaces = Interface.objects.filter(
             device__in=self.members.all(),
             lag__isnull=False
         ).exclude(
@@ -2183,7 +2183,7 @@ class Cable(ChangeLoggedModel):
         if not hasattr(self, 'termination_a_type'):
             raise ValidationError('Termination A type has not been specified')
         try:
-            self.termination_a_type.model_class().objects.unrestricted().get(pk=self.termination_a_id)
+            self.termination_a_type.model_class().objects.get(pk=self.termination_a_id)
         except ObjectDoesNotExist:
             raise ValidationError({
                 'termination_a': 'Invalid ID for type {}'.format(self.termination_a_type)
@@ -2193,7 +2193,7 @@ class Cable(ChangeLoggedModel):
         if not hasattr(self, 'termination_b_type'):
             raise ValidationError('Termination B type has not been specified')
         try:
-            self.termination_b_type.model_class().objects.unrestricted().get(pk=self.termination_b_id)
+            self.termination_b_type.model_class().objects.get(pk=self.termination_b_id)
         except ObjectDoesNotExist:
             raise ValidationError({
                 'termination_b': 'Invalid ID for type {}'.format(self.termination_b_type)

+ 41 - 41
netbox/dcim/tests/test_api.py

@@ -38,11 +38,11 @@ class Mixins:
             """
             Test tracing a device component's attached cable.
             """
-            obj = self.model.objects.unrestricted().first()
+            obj = self.model.objects.first()
             peer_device = Device.objects.create(
-                site=Site.objects.unrestricted().first(),
-                device_type=DeviceType.objects.unrestricted().first(),
-                device_role=DeviceRole.objects.unrestricted().first(),
+                site=Site.objects.first(),
+                device_type=DeviceType.objects.first(),
+                device_role=DeviceRole.objects.first(),
                 name='Peer Device'
             )
             if self.peer_termination_type is None:
@@ -146,7 +146,7 @@ class SiteTest(APIViewTestCases.APIViewTestCase):
         Graph.objects.bulk_create(graphs)
 
         self.add_permissions('dcim.view_site')
-        url = reverse('dcim-api:site-graphs', kwargs={'pk': Site.objects.unrestricted().unrestricted().first().pk})
+        url = reverse('dcim-api:site-graphs', kwargs={'pk': Site.objects.first().pk})
         response = self.client.get(url, **self.header)
 
         self.assertEqual(len(response.data), 3)
@@ -285,7 +285,7 @@ class RackTest(APIViewTestCases.APIViewTestCase):
         """
         GET a single rack elevation.
         """
-        rack = Rack.objects.unrestricted().first()
+        rack = Rack.objects.first()
         self.add_permissions('dcim.view_rack')
         url = reverse('dcim-api:rack-elevation', kwargs={'pk': rack.pk})
 
@@ -305,7 +305,7 @@ class RackTest(APIViewTestCases.APIViewTestCase):
         """
         GET a single rack elevation in SVG format.
         """
-        rack = Rack.objects.unrestricted().first()
+        rack = Rack.objects.first()
         self.add_permissions('dcim.view_rack')
         url = '{}?render=svg'.format(reverse('dcim-api:rack-elevation', kwargs={'pk': rack.pk}))
 
@@ -916,7 +916,7 @@ class DeviceTest(APIViewTestCases.APIViewTestCase):
         Graph.objects.bulk_create(graphs)
 
         self.add_permissions('dcim.view_device')
-        url = reverse('dcim-api:device-graphs', kwargs={'pk': Device.objects.unrestricted().first().pk})
+        url = reverse('dcim-api:device-graphs', kwargs={'pk': Device.objects.first().pk})
         response = self.client.get(url, **self.header)
 
         self.assertEqual(len(response.data), 3)
@@ -946,7 +946,7 @@ class DeviceTest(APIViewTestCases.APIViewTestCase):
         """
         Check that creating a device with a duplicate name within a site fails.
         """
-        device = Device.objects.unrestricted().first()
+        device = Device.objects.first()
         data = {
             'device_type': device.device_type.pk,
             'device_role': device.device_role.pk,
@@ -1173,7 +1173,7 @@ class InterfaceTest(Mixins.ComponentTraceMixin, APIViewTestCases.APIViewTestCase
         Graph.objects.bulk_create(graphs)
 
         self.add_permissions('dcim.view_interface')
-        url = reverse('dcim-api:interface-graphs', kwargs={'pk': Interface.objects.unrestricted().first().pk})
+        url = reverse('dcim-api:interface-graphs', kwargs={'pk': Interface.objects.first().pk})
         response = self.client.get(url, **self.header)
 
         self.assertEqual(len(response.data), 3)
@@ -1483,11 +1483,11 @@ class ConnectionTest(APITestCase):
         response = self.client.post(url, data, format='json', **self.header)
 
         self.assertHttpStatus(response, status.HTTP_201_CREATED)
-        self.assertEqual(Cable.objects.unrestricted().count(), 1)
+        self.assertEqual(Cable.objects.count(), 1)
 
-        cable = Cable.objects.unrestricted().get(pk=response.data['id'])
-        consoleport1 = ConsolePort.objects.unrestricted().get(pk=consoleport1.pk)
-        consoleserverport1 = ConsoleServerPort.objects.unrestricted().get(pk=consoleserverport1.pk)
+        cable = Cable.objects.get(pk=response.data['id'])
+        consoleport1 = ConsolePort.objects.get(pk=consoleport1.pk)
+        consoleserverport1 = ConsoleServerPort.objects.get(pk=consoleserverport1.pk)
 
         self.assertEqual(cable.termination_a, consoleport1)
         self.assertEqual(cable.termination_b, consoleserverport1)
@@ -1548,12 +1548,12 @@ class ConnectionTest(APITestCase):
             response = self.client.post(url, data, format='json', **self.header)
             self.assertHttpStatus(response, status.HTTP_201_CREATED)
 
-            cable = Cable.objects.unrestricted().get(pk=response.data['id'])
+            cable = Cable.objects.get(pk=response.data['id'])
             self.assertEqual(cable.termination_a.cable, cable)
             self.assertEqual(cable.termination_b.cable, cable)
 
-        consoleport1 = ConsolePort.objects.unrestricted().get(pk=consoleport1.pk)
-        consoleserverport1 = ConsoleServerPort.objects.unrestricted().get(pk=consoleserverport1.pk)
+        consoleport1 = ConsolePort.objects.get(pk=consoleport1.pk)
+        consoleserverport1 = ConsoleServerPort.objects.get(pk=consoleserverport1.pk)
         self.assertEqual(consoleport1.connected_endpoint, consoleserverport1)
         self.assertEqual(consoleserverport1.connected_endpoint, consoleport1)
 
@@ -1578,11 +1578,11 @@ class ConnectionTest(APITestCase):
         response = self.client.post(url, data, format='json', **self.header)
 
         self.assertHttpStatus(response, status.HTTP_201_CREATED)
-        self.assertEqual(Cable.objects.unrestricted().count(), 1)
+        self.assertEqual(Cable.objects.count(), 1)
 
-        cable = Cable.objects.unrestricted().get(pk=response.data['id'])
-        powerport1 = PowerPort.objects.unrestricted().get(pk=powerport1.pk)
-        poweroutlet1 = PowerOutlet.objects.unrestricted().get(pk=poweroutlet1.pk)
+        cable = Cable.objects.get(pk=response.data['id'])
+        powerport1 = PowerPort.objects.get(pk=powerport1.pk)
+        poweroutlet1 = PowerOutlet.objects.get(pk=poweroutlet1.pk)
 
         self.assertEqual(cable.termination_a, powerport1)
         self.assertEqual(cable.termination_b, poweroutlet1)
@@ -1614,11 +1614,11 @@ class ConnectionTest(APITestCase):
         response = self.client.post(url, data, format='json', **self.header)
 
         self.assertHttpStatus(response, status.HTTP_201_CREATED)
-        self.assertEqual(Cable.objects.unrestricted().count(), 1)
+        self.assertEqual(Cable.objects.count(), 1)
 
-        cable = Cable.objects.unrestricted().get(pk=response.data['id'])
-        interface1 = Interface.objects.unrestricted().get(pk=interface1.pk)
-        interface2 = Interface.objects.unrestricted().get(pk=interface2.pk)
+        cable = Cable.objects.get(pk=response.data['id'])
+        interface1 = Interface.objects.get(pk=interface1.pk)
+        interface2 = Interface.objects.get(pk=interface2.pk)
 
         self.assertEqual(cable.termination_a, interface1)
         self.assertEqual(cable.termination_b, interface2)
@@ -1679,12 +1679,12 @@ class ConnectionTest(APITestCase):
             response = self.client.post(url, data, format='json', **self.header)
             self.assertHttpStatus(response, status.HTTP_201_CREATED)
 
-            cable = Cable.objects.unrestricted().get(pk=response.data['id'])
+            cable = Cable.objects.get(pk=response.data['id'])
             self.assertEqual(cable.termination_a.cable, cable)
             self.assertEqual(cable.termination_b.cable, cable)
 
-        interface1 = Interface.objects.unrestricted().get(pk=interface1.pk)
-        interface2 = Interface.objects.unrestricted().get(pk=interface2.pk)
+        interface1 = Interface.objects.get(pk=interface1.pk)
+        interface2 = Interface.objects.get(pk=interface2.pk)
         self.assertEqual(interface1.connected_endpoint, interface2)
         self.assertEqual(interface2.connected_endpoint, interface1)
 
@@ -1718,11 +1718,11 @@ class ConnectionTest(APITestCase):
         response = self.client.post(url, data, format='json', **self.header)
 
         self.assertHttpStatus(response, status.HTTP_201_CREATED)
-        self.assertEqual(Cable.objects.unrestricted().count(), 1)
+        self.assertEqual(Cable.objects.count(), 1)
 
-        cable = Cable.objects.unrestricted().get(pk=response.data['id'])
-        interface1 = Interface.objects.unrestricted().get(pk=interface1.pk)
-        circuittermination1 = CircuitTermination.objects.unrestricted().get(pk=circuittermination1.pk)
+        cable = Cable.objects.get(pk=response.data['id'])
+        interface1 = Interface.objects.get(pk=interface1.pk)
+        circuittermination1 = CircuitTermination.objects.get(pk=circuittermination1.pk)
 
         self.assertEqual(cable.termination_a, interface1)
         self.assertEqual(cable.termination_b, circuittermination1)
@@ -1792,12 +1792,12 @@ class ConnectionTest(APITestCase):
             response = self.client.post(url, data, format='json', **self.header)
             self.assertHttpStatus(response, status.HTTP_201_CREATED)
 
-            cable = Cable.objects.unrestricted().get(pk=response.data['id'])
+            cable = Cable.objects.get(pk=response.data['id'])
             self.assertEqual(cable.termination_a.cable, cable)
             self.assertEqual(cable.termination_b.cable, cable)
 
-        interface1 = Interface.objects.unrestricted().get(pk=interface1.pk)
-        circuittermination1 = CircuitTermination.objects.unrestricted().get(pk=circuittermination1.pk)
+        interface1 = Interface.objects.get(pk=interface1.pk)
+        circuittermination1 = CircuitTermination.objects.get(pk=circuittermination1.pk)
         self.assertEqual(interface1.connected_endpoint, circuittermination1)
         self.assertEqual(circuittermination1.connected_endpoint, interface1)
 
@@ -1888,12 +1888,12 @@ class VirtualChassisTest(APIViewTestCases.APIViewTestCase):
             VirtualChassis(name='Virtual Chassis 3', master=devices[6], domain='domain-3'),
         )
         VirtualChassis.objects.bulk_create(virtual_chassis)
-        Device.objects.unrestricted().filter(pk=devices[1].pk).update(virtual_chassis=virtual_chassis[0], vc_position=2)
-        Device.objects.unrestricted().filter(pk=devices[2].pk).update(virtual_chassis=virtual_chassis[0], vc_position=3)
-        Device.objects.unrestricted().filter(pk=devices[4].pk).update(virtual_chassis=virtual_chassis[1], vc_position=2)
-        Device.objects.unrestricted().filter(pk=devices[5].pk).update(virtual_chassis=virtual_chassis[1], vc_position=3)
-        Device.objects.unrestricted().filter(pk=devices[7].pk).update(virtual_chassis=virtual_chassis[2], vc_position=2)
-        Device.objects.unrestricted().filter(pk=devices[8].pk).update(virtual_chassis=virtual_chassis[2], vc_position=3)
+        Device.objects.filter(pk=devices[1].pk).update(virtual_chassis=virtual_chassis[0], vc_position=2)
+        Device.objects.filter(pk=devices[2].pk).update(virtual_chassis=virtual_chassis[0], vc_position=3)
+        Device.objects.filter(pk=devices[4].pk).update(virtual_chassis=virtual_chassis[1], vc_position=2)
+        Device.objects.filter(pk=devices[5].pk).update(virtual_chassis=virtual_chassis[1], vc_position=3)
+        Device.objects.filter(pk=devices[7].pk).update(virtual_chassis=virtual_chassis[2], vc_position=2)
+        Device.objects.filter(pk=devices[8].pk).update(virtual_chassis=virtual_chassis[2], vc_position=3)
 
         cls.update_data = {
             'name': 'Virtual Chassis X',

+ 110 - 110
netbox/dcim/tests/test_filters.py

@@ -16,7 +16,7 @@ from virtualization.models import Cluster, ClusterType
 
 
 class RegionTestCase(TestCase):
-    queryset = Region.objects.unrestricted()
+    queryset = Region.objects.all()
     filterset = RegionFilterSet
 
     @classmethod
@@ -66,7 +66,7 @@ class RegionTestCase(TestCase):
 
 
 class SiteTestCase(TestCase):
-    queryset = Site.objects.unrestricted()
+    queryset = Site.objects.all()
     filterset = SiteFilterSet
 
     @classmethod
@@ -147,21 +147,21 @@ class SiteTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_region(self):
-        regions = Region.objects.unrestricted()[:2]
+        regions = Region.objects.all()[:2]
         params = {'region_id': [regions[0].pk, regions[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'region': [regions[0].slug, regions[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_tenant(self):
-        tenants = Tenant.objects.unrestricted()[:2]
+        tenants = Tenant.objects.all()[:2]
         params = {'tenant_id': [tenants[0].pk, tenants[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'tenant': [tenants[0].slug, tenants[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_tenant_group(self):
-        tenant_groups = TenantGroup.objects.unrestricted()[:2]
+        tenant_groups = TenantGroup.objects.all()[:2]
         params = {'tenant_group_id': [tenant_groups[0].pk, tenant_groups[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'tenant_group': [tenant_groups[0].slug, tenant_groups[1].slug]}
@@ -169,7 +169,7 @@ class SiteTestCase(TestCase):
 
 
 class RackGroupTestCase(TestCase):
-    queryset = RackGroup.objects.unrestricted()
+    queryset = RackGroup.objects.all()
     filterset = RackGroupFilterSet
 
     @classmethod
@@ -223,14 +223,14 @@ class RackGroupTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_region(self):
-        regions = Region.objects.unrestricted()[:2]
+        regions = Region.objects.all()[:2]
         params = {'region_id': [regions[0].pk, regions[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         params = {'region': [regions[0].slug, regions[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_site(self):
-        sites = Site.objects.unrestricted()[:2]
+        sites = Site.objects.all()[:2]
         params = {'site_id': [sites[0].pk, sites[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         params = {'site': [sites[0].slug, sites[1].slug]}
@@ -245,7 +245,7 @@ class RackGroupTestCase(TestCase):
 
 
 class RackRoleTestCase(TestCase):
-    queryset = RackRole.objects.unrestricted()
+    queryset = RackRole.objects.all()
     filterset = RackRoleFilterSet
 
     @classmethod
@@ -276,7 +276,7 @@ class RackRoleTestCase(TestCase):
 
 
 class RackTestCase(TestCase):
-    queryset = Rack.objects.unrestricted()
+    queryset = Rack.objects.all()
     filterset = RackFilterSet
 
     @classmethod
@@ -384,21 +384,21 @@ class RackTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_region(self):
-        regions = Region.objects.unrestricted()[:2]
+        regions = Region.objects.all()[:2]
         params = {'region_id': [regions[0].pk, regions[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'region': [regions[0].slug, regions[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_site(self):
-        sites = Site.objects.unrestricted()[:2]
+        sites = Site.objects.all()[:2]
         params = {'site_id': [sites[0].pk, sites[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'site': [sites[0].slug, sites[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_group(self):
-        groups = RackGroup.objects.unrestricted()[:2]
+        groups = RackGroup.objects.all()[:2]
         params = {'group_id': [groups[0].pk, groups[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'group': [groups[0].slug, groups[1].slug]}
@@ -409,7 +409,7 @@ class RackTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_role(self):
-        roles = RackRole.objects.unrestricted()[:2]
+        roles = RackRole.objects.all()[:2]
         params = {'role_id': [roles[0].pk, roles[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'role': [roles[0].slug, roles[1].slug]}
@@ -422,14 +422,14 @@ class RackTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
 
     def test_tenant(self):
-        tenants = Tenant.objects.unrestricted()[:2]
+        tenants = Tenant.objects.all()[:2]
         params = {'tenant_id': [tenants[0].pk, tenants[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'tenant': [tenants[0].slug, tenants[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_tenant_group(self):
-        tenant_groups = TenantGroup.objects.unrestricted()[:2]
+        tenant_groups = TenantGroup.objects.all()[:2]
         params = {'tenant_group_id': [tenant_groups[0].pk, tenant_groups[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'tenant_group': [tenant_groups[0].slug, tenant_groups[1].slug]}
@@ -437,7 +437,7 @@ class RackTestCase(TestCase):
 
 
 class RackReservationTestCase(TestCase):
-    queryset = RackReservation.objects.unrestricted()
+    queryset = RackReservation.objects.all()
     filterset = RackReservationFilterSet
 
     @classmethod
@@ -499,14 +499,14 @@ class RackReservationTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_site(self):
-        sites = Site.objects.unrestricted()[:2]
+        sites = Site.objects.all()[:2]
         params = {'site_id': [sites[0].pk, sites[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'site': [sites[0].slug, sites[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_group(self):
-        groups = RackGroup.objects.unrestricted()[:2]
+        groups = RackGroup.objects.all()[:2]
         params = {'group_id': [groups[0].pk, groups[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'group': [groups[0].slug, groups[1].slug]}
@@ -521,14 +521,14 @@ class RackReservationTestCase(TestCase):
         # self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_tenant(self):
-        tenants = Tenant.objects.unrestricted()[:2]
+        tenants = Tenant.objects.all()[:2]
         params = {'tenant_id': [tenants[0].pk, tenants[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'tenant': [tenants[0].slug, tenants[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_tenant_group(self):
-        tenant_groups = TenantGroup.objects.unrestricted()[:2]
+        tenant_groups = TenantGroup.objects.all()[:2]
         params = {'tenant_group_id': [tenant_groups[0].pk, tenant_groups[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'tenant_group': [tenant_groups[0].slug, tenant_groups[1].slug]}
@@ -536,7 +536,7 @@ class RackReservationTestCase(TestCase):
 
 
 class ManufacturerTestCase(TestCase):
-    queryset = Manufacturer.objects.unrestricted()
+    queryset = Manufacturer.objects.all()
     filterset = ManufacturerFilterSet
 
     @classmethod
@@ -567,7 +567,7 @@ class ManufacturerTestCase(TestCase):
 
 
 class DeviceTypeTestCase(TestCase):
-    queryset = DeviceType.objects.unrestricted()
+    queryset = DeviceType.objects.all()
     filterset = DeviceTypeFilterSet
 
     @classmethod
@@ -653,7 +653,7 @@ class DeviceTypeTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
 
     def test_manufacturer(self):
-        manufacturers = Manufacturer.objects.unrestricted()[:2]
+        manufacturers = Manufacturer.objects.all()[:2]
         params = {'manufacturer_id': [manufacturers[0].pk, manufacturers[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'manufacturer': [manufacturers[0].slug, manufacturers[1].slug]}
@@ -703,7 +703,7 @@ class DeviceTypeTestCase(TestCase):
 
 
 class ConsolePortTemplateTestCase(TestCase):
-    queryset = ConsolePortTemplate.objects.unrestricted()
+    queryset = ConsolePortTemplate.objects.all()
     filterset = ConsolePortTemplateFilterSet
 
     @classmethod
@@ -733,13 +733,13 @@ class ConsolePortTemplateTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_devicetype_id(self):
-        device_types = DeviceType.objects.unrestricted()[:2]
+        device_types = DeviceType.objects.all()[:2]
         params = {'devicetype_id': [device_types[0].pk, device_types[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 class ConsoleServerPortTemplateTestCase(TestCase):
-    queryset = ConsoleServerPortTemplate.objects.unrestricted()
+    queryset = ConsoleServerPortTemplate.objects.all()
     filterset = ConsoleServerPortTemplateFilterSet
 
     @classmethod
@@ -769,13 +769,13 @@ class ConsoleServerPortTemplateTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_devicetype_id(self):
-        device_types = DeviceType.objects.unrestricted()[:2]
+        device_types = DeviceType.objects.all()[:2]
         params = {'devicetype_id': [device_types[0].pk, device_types[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 class PowerPortTemplateTestCase(TestCase):
-    queryset = PowerPortTemplate.objects.unrestricted()
+    queryset = PowerPortTemplate.objects.all()
     filterset = PowerPortTemplateFilterSet
 
     @classmethod
@@ -805,7 +805,7 @@ class PowerPortTemplateTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_devicetype_id(self):
-        device_types = DeviceType.objects.unrestricted()[:2]
+        device_types = DeviceType.objects.all()[:2]
         params = {'devicetype_id': [device_types[0].pk, device_types[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
@@ -819,7 +819,7 @@ class PowerPortTemplateTestCase(TestCase):
 
 
 class PowerOutletTemplateTestCase(TestCase):
-    queryset = PowerOutletTemplate.objects.unrestricted()
+    queryset = PowerOutletTemplate.objects.all()
     filterset = PowerOutletTemplateFilterSet
 
     @classmethod
@@ -849,7 +849,7 @@ class PowerOutletTemplateTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_devicetype_id(self):
-        device_types = DeviceType.objects.unrestricted()[:2]
+        device_types = DeviceType.objects.all()[:2]
         params = {'devicetype_id': [device_types[0].pk, device_types[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
@@ -860,7 +860,7 @@ class PowerOutletTemplateTestCase(TestCase):
 
 
 class InterfaceTemplateTestCase(TestCase):
-    queryset = InterfaceTemplate.objects.unrestricted()
+    queryset = InterfaceTemplate.objects.all()
     filterset = InterfaceTemplateFilterSet
 
     @classmethod
@@ -890,7 +890,7 @@ class InterfaceTemplateTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_devicetype_id(self):
-        device_types = DeviceType.objects.unrestricted()[:2]
+        device_types = DeviceType.objects.all()[:2]
         params = {'devicetype_id': [device_types[0].pk, device_types[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
@@ -907,7 +907,7 @@ class InterfaceTemplateTestCase(TestCase):
 
 
 class FrontPortTemplateTestCase(TestCase):
-    queryset = FrontPortTemplate.objects.unrestricted()
+    queryset = FrontPortTemplate.objects.all()
     filterset = FrontPortTemplateFilterSet
 
     @classmethod
@@ -944,7 +944,7 @@ class FrontPortTemplateTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_devicetype_id(self):
-        device_types = DeviceType.objects.unrestricted()[:2]
+        device_types = DeviceType.objects.all()[:2]
         params = {'devicetype_id': [device_types[0].pk, device_types[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
@@ -955,7 +955,7 @@ class FrontPortTemplateTestCase(TestCase):
 
 
 class RearPortTemplateTestCase(TestCase):
-    queryset = RearPortTemplate.objects.unrestricted()
+    queryset = RearPortTemplate.objects.all()
     filterset = RearPortTemplateFilterSet
 
     @classmethod
@@ -985,7 +985,7 @@ class RearPortTemplateTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_devicetype_id(self):
-        device_types = DeviceType.objects.unrestricted()[:2]
+        device_types = DeviceType.objects.all()[:2]
         params = {'devicetype_id': [device_types[0].pk, device_types[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
@@ -1000,7 +1000,7 @@ class RearPortTemplateTestCase(TestCase):
 
 
 class DeviceBayTemplateTestCase(TestCase):
-    queryset = DeviceBayTemplate.objects.unrestricted()
+    queryset = DeviceBayTemplate.objects.all()
     filterset = DeviceBayTemplateFilterSet
 
     @classmethod
@@ -1030,13 +1030,13 @@ class DeviceBayTemplateTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_devicetype_id(self):
-        device_types = DeviceType.objects.unrestricted()[:2]
+        device_types = DeviceType.objects.all()[:2]
         params = {'devicetype_id': [device_types[0].pk, device_types[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 class DeviceRoleTestCase(TestCase):
-    queryset = DeviceRole.objects.unrestricted()
+    queryset = DeviceRole.objects.all()
     filterset = DeviceRoleFilterSet
 
     @classmethod
@@ -1073,7 +1073,7 @@ class DeviceRoleTestCase(TestCase):
 
 
 class PlatformTestCase(TestCase):
-    queryset = Platform.objects.unrestricted()
+    queryset = Platform.objects.all()
     filterset = PlatformFilterSet
 
     @classmethod
@@ -1114,7 +1114,7 @@ class PlatformTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_manufacturer(self):
-        manufacturers = Manufacturer.objects.unrestricted()[:2]
+        manufacturers = Manufacturer.objects.all()[:2]
         params = {'manufacturer_id': [manufacturers[0].pk, manufacturers[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'manufacturer': [manufacturers[0].slug, manufacturers[1].slug]}
@@ -1122,7 +1122,7 @@ class PlatformTestCase(TestCase):
 
 
 class DeviceTestCase(TestCase):
-    queryset = Device.objects.unrestricted()
+    queryset = Device.objects.all()
     filterset = DeviceFilterSet
 
     @classmethod
@@ -1295,57 +1295,57 @@ class DeviceTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_manufacturer(self):
-        manufacturers = Manufacturer.objects.unrestricted()[:2]
+        manufacturers = Manufacturer.objects.all()[:2]
         params = {'manufacturer_id': [manufacturers[0].pk, manufacturers[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'manufacturer': [manufacturers[0].slug, manufacturers[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_devicetype(self):
-        device_types = DeviceType.objects.unrestricted()[:2]
+        device_types = DeviceType.objects.all()[:2]
         params = {'device_type_id': [device_types[0].pk, device_types[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_devicerole(self):
-        device_roles = DeviceRole.objects.unrestricted()[:2]
+        device_roles = DeviceRole.objects.all()[:2]
         params = {'role_id': [device_roles[0].pk, device_roles[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'role': [device_roles[0].slug, device_roles[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_platform(self):
-        platforms = Platform.objects.unrestricted()[:2]
+        platforms = Platform.objects.all()[:2]
         params = {'platform_id': [platforms[0].pk, platforms[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'platform': [platforms[0].slug, platforms[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_region(self):
-        regions = Region.objects.unrestricted()[:2]
+        regions = Region.objects.all()[:2]
         params = {'region_id': [regions[0].pk, regions[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'region': [regions[0].slug, regions[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_site(self):
-        sites = Site.objects.unrestricted()[:2]
+        sites = Site.objects.all()[:2]
         params = {'site_id': [sites[0].pk, sites[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'site': [sites[0].slug, sites[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_rackgroup(self):
-        rack_groups = RackGroup.objects.unrestricted()[:2]
+        rack_groups = RackGroup.objects.all()[:2]
         params = {'rack_group_id': [rack_groups[0].pk, rack_groups[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_rack(self):
-        racks = Rack.objects.unrestricted()[:2]
+        racks = Rack.objects.all()[:2]
         params = {'rack_id': [racks[0].pk, racks[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_cluster(self):
-        clusters = Cluster.objects.unrestricted()[:2]
+        clusters = Cluster.objects.all()[:2]
         params = {'cluster_id': [clusters[0].pk, clusters[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
@@ -1380,7 +1380,7 @@ class DeviceTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
 
     def test_virtual_chassis_id(self):
-        params = {'virtual_chassis_id': [VirtualChassis.objects.unrestricted().first().pk]}
+        params = {'virtual_chassis_id': [VirtualChassis.objects.first().pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_virtual_chassis_member(self):
@@ -1438,14 +1438,14 @@ class DeviceTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_tenant(self):
-        tenants = Tenant.objects.unrestricted()[:2]
+        tenants = Tenant.objects.all()[:2]
         params = {'tenant_id': [tenants[0].pk, tenants[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'tenant': [tenants[0].slug, tenants[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_tenant_group(self):
-        tenant_groups = TenantGroup.objects.unrestricted()[:2]
+        tenant_groups = TenantGroup.objects.all()[:2]
         params = {'tenant_group_id': [tenant_groups[0].pk, tenant_groups[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'tenant_group': [tenant_groups[0].slug, tenant_groups[1].slug]}
@@ -1453,7 +1453,7 @@ class DeviceTestCase(TestCase):
 
 
 class ConsolePortTestCase(TestCase):
-    queryset = ConsolePort.objects.unrestricted()
+    queryset = ConsolePort.objects.all()
     filterset = ConsolePortFilterSet
 
     @classmethod
@@ -1520,21 +1520,21 @@ class ConsolePortTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_region(self):
-        regions = Region.objects.unrestricted()[:2]
+        regions = Region.objects.all()[:2]
         params = {'region_id': [regions[0].pk, regions[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'region': [regions[0].slug, regions[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_site(self):
-        sites = Site.objects.unrestricted()[:2]
+        sites = Site.objects.all()[:2]
         params = {'site_id': [sites[0].pk, sites[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'site': [sites[0].slug, sites[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_device(self):
-        devices = Device.objects.unrestricted()[:2]
+        devices = Device.objects.all()[:2]
         params = {'device_id': [devices[0].pk, devices[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'device': [devices[0].name, devices[1].name]}
@@ -1548,7 +1548,7 @@ class ConsolePortTestCase(TestCase):
 
 
 class ConsoleServerPortTestCase(TestCase):
-    queryset = ConsoleServerPort.objects.unrestricted()
+    queryset = ConsoleServerPort.objects.all()
     filterset = ConsoleServerPortFilterSet
 
     @classmethod
@@ -1615,21 +1615,21 @@ class ConsoleServerPortTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_region(self):
-        regions = Region.objects.unrestricted()[:2]
+        regions = Region.objects.all()[:2]
         params = {'region_id': [regions[0].pk, regions[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'region': [regions[0].slug, regions[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_site(self):
-        sites = Site.objects.unrestricted()[:2]
+        sites = Site.objects.all()[:2]
         params = {'site_id': [sites[0].pk, sites[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'site': [sites[0].slug, sites[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_device(self):
-        devices = Device.objects.unrestricted()[:2]
+        devices = Device.objects.all()[:2]
         params = {'device_id': [devices[0].pk, devices[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'device': [devices[0].name, devices[1].name]}
@@ -1643,7 +1643,7 @@ class ConsoleServerPortTestCase(TestCase):
 
 
 class PowerPortTestCase(TestCase):
-    queryset = PowerPort.objects.unrestricted()
+    queryset = PowerPort.objects.all()
     filterset = PowerPortFilterSet
 
     @classmethod
@@ -1718,21 +1718,21 @@ class PowerPortTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_region(self):
-        regions = Region.objects.unrestricted()[:2]
+        regions = Region.objects.all()[:2]
         params = {'region_id': [regions[0].pk, regions[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'region': [regions[0].slug, regions[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_site(self):
-        sites = Site.objects.unrestricted()[:2]
+        sites = Site.objects.all()[:2]
         params = {'site_id': [sites[0].pk, sites[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'site': [sites[0].slug, sites[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_device(self):
-        devices = Device.objects.unrestricted()[:2]
+        devices = Device.objects.all()[:2]
         params = {'device_id': [devices[0].pk, devices[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'device': [devices[0].name, devices[1].name]}
@@ -1746,7 +1746,7 @@ class PowerPortTestCase(TestCase):
 
 
 class PowerOutletTestCase(TestCase):
-    queryset = PowerOutlet.objects.unrestricted()
+    queryset = PowerOutlet.objects.all()
     filterset = PowerOutletFilterSet
 
     @classmethod
@@ -1818,21 +1818,21 @@ class PowerOutletTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_region(self):
-        regions = Region.objects.unrestricted()[:2]
+        regions = Region.objects.all()[:2]
         params = {'region_id': [regions[0].pk, regions[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'region': [regions[0].slug, regions[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_site(self):
-        sites = Site.objects.unrestricted()[:2]
+        sites = Site.objects.all()[:2]
         params = {'site_id': [sites[0].pk, sites[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'site': [sites[0].slug, sites[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_device(self):
-        devices = Device.objects.unrestricted()[:2]
+        devices = Device.objects.all()[:2]
         params = {'device_id': [devices[0].pk, devices[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'device': [devices[0].name, devices[1].name]}
@@ -1846,7 +1846,7 @@ class PowerOutletTestCase(TestCase):
 
 
 class InterfaceTestCase(TestCase):
-    queryset = Interface.objects.unrestricted()
+    queryset = Interface.objects.all()
     filterset = InterfaceFilterSet
 
     @classmethod
@@ -1930,21 +1930,21 @@ class InterfaceTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_region(self):
-        regions = Region.objects.unrestricted()[:2]
+        regions = Region.objects.all()[:2]
         params = {'region_id': [regions[0].pk, regions[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'region': [regions[0].slug, regions[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_site(self):
-        sites = Site.objects.unrestricted()[:2]
+        sites = Site.objects.all()[:2]
         params = {'site_id': [sites[0].pk, sites[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'site': [sites[0].slug, sites[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_device(self):
-        devices = Device.objects.unrestricted()[:2]
+        devices = Device.objects.all()[:2]
         params = {'device_id': [devices[0].pk, devices[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'device': [devices[0].name, devices[1].name]}
@@ -1972,7 +1972,7 @@ class InterfaceTestCase(TestCase):
 
 
 class FrontPortTestCase(TestCase):
-    queryset = FrontPort.objects.unrestricted()
+    queryset = FrontPort.objects.all()
     filterset = FrontPortFilterSet
 
     @classmethod
@@ -2046,21 +2046,21 @@ class FrontPortTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_region(self):
-        regions = Region.objects.unrestricted()[:2]
+        regions = Region.objects.all()[:2]
         params = {'region_id': [regions[0].pk, regions[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'region': [regions[0].slug, regions[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_site(self):
-        sites = Site.objects.unrestricted()[:2]
+        sites = Site.objects.all()[:2]
         params = {'site_id': [sites[0].pk, sites[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'site': [sites[0].slug, sites[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_device(self):
-        devices = Device.objects.unrestricted()[:2]
+        devices = Device.objects.all()[:2]
         params = {'device_id': [devices[0].pk, devices[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'device': [devices[0].name, devices[1].name]}
@@ -2074,7 +2074,7 @@ class FrontPortTestCase(TestCase):
 
 
 class RearPortTestCase(TestCase):
-    queryset = RearPort.objects.unrestricted()
+    queryset = RearPort.objects.all()
     filterset = RearPortFilterSet
 
     @classmethod
@@ -2142,21 +2142,21 @@ class RearPortTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_region(self):
-        regions = Region.objects.unrestricted()[:2]
+        regions = Region.objects.all()[:2]
         params = {'region_id': [regions[0].pk, regions[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'region': [regions[0].slug, regions[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_site(self):
-        sites = Site.objects.unrestricted()[:2]
+        sites = Site.objects.all()[:2]
         params = {'site_id': [sites[0].pk, sites[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'site': [sites[0].slug, sites[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_device(self):
-        devices = Device.objects.unrestricted()[:2]
+        devices = Device.objects.all()[:2]
         params = {'device_id': [devices[0].pk, devices[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'device': [devices[0].name, devices[1].name]}
@@ -2170,7 +2170,7 @@ class RearPortTestCase(TestCase):
 
 
 class DeviceBayTestCase(TestCase):
-    queryset = DeviceBay.objects.unrestricted()
+    queryset = DeviceBay.objects.all()
     filterset = DeviceBayFilterSet
 
     @classmethod
@@ -2220,21 +2220,21 @@ class DeviceBayTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_region(self):
-        regions = Region.objects.unrestricted()[:2]
+        regions = Region.objects.all()[:2]
         params = {'region_id': [regions[0].pk, regions[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'region': [regions[0].slug, regions[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_site(self):
-        sites = Site.objects.unrestricted()[:2]
+        sites = Site.objects.all()[:2]
         params = {'site_id': [sites[0].pk, sites[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'site': [sites[0].slug, sites[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_device(self):
-        devices = Device.objects.unrestricted()[:2]
+        devices = Device.objects.all()[:2]
         params = {'device_id': [devices[0].pk, devices[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'device': [devices[0].name, devices[1].name]}
@@ -2242,7 +2242,7 @@ class DeviceBayTestCase(TestCase):
 
 
 class InventoryItemTestCase(TestCase):
-    queryset = InventoryItem.objects.unrestricted()
+    queryset = InventoryItem.objects.all()
     filterset = InventoryItemFilterSet
 
     @classmethod
@@ -2318,14 +2318,14 @@ class InventoryItemTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_region(self):
-        regions = Region.objects.unrestricted()[:2]
+        regions = Region.objects.all()[:2]
         params = {'region_id': [regions[0].pk, regions[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         params = {'region': [regions[0].slug, regions[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_site(self):
-        sites = Site.objects.unrestricted()[:2]
+        sites = Site.objects.all()[:2]
         params = {'site_id': [sites[0].pk, sites[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         params = {'site': [sites[0].slug, sites[1].slug]}
@@ -2333,7 +2333,7 @@ class InventoryItemTestCase(TestCase):
 
     def test_device(self):
         # TODO: Allow multiple values
-        device = Device.objects.unrestricted().first()
+        device = Device.objects.first()
         params = {'device_id': device.pk}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'device': device.name}
@@ -2345,7 +2345,7 @@ class InventoryItemTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_manufacturer(self):
-        manufacturers = Manufacturer.objects.unrestricted()[:2]
+        manufacturers = Manufacturer.objects.all()[:2]
         params = {'manufacturer_id': [manufacturers[0].pk, manufacturers[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'manufacturer': [manufacturers[0].slug, manufacturers[1].slug]}
@@ -2359,7 +2359,7 @@ class InventoryItemTestCase(TestCase):
 
 
 class VirtualChassisTestCase(TestCase):
-    queryset = VirtualChassis.objects.unrestricted()
+    queryset = VirtualChassis.objects.all()
     filterset = VirtualChassisFilterSet
 
     @classmethod
@@ -2414,14 +2414,14 @@ class VirtualChassisTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_region(self):
-        regions = Region.objects.unrestricted()[:2]
+        regions = Region.objects.all()[:2]
         params = {'region_id': [regions[0].pk, regions[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'region': [regions[0].slug, regions[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_site(self):
-        sites = Site.objects.unrestricted()[:2]
+        sites = Site.objects.all()[:2]
         params = {'site_id': [sites[0].pk, sites[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'site': [sites[0].slug, sites[1].slug]}
@@ -2429,7 +2429,7 @@ class VirtualChassisTestCase(TestCase):
 
 
 class CableTestCase(TestCase):
-    queryset = Cable.objects.unrestricted()
+    queryset = Cable.objects.all()
     filterset = CableFilterSet
 
     @classmethod
@@ -2524,28 +2524,28 @@ class CableTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_device(self):
-        devices = Device.objects.unrestricted()[:2]
+        devices = Device.objects.all()[:2]
         params = {'device_id': [devices[0].pk, devices[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
         params = {'device': [devices[0].name, devices[1].name]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
 
     def test_rack(self):
-        racks = Rack.objects.unrestricted()[:2]
+        racks = Rack.objects.all()[:2]
         params = {'rack_id': [racks[0].pk, racks[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 5)
         params = {'rack': [racks[0].name, racks[1].name]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 5)
 
     def test_site(self):
-        site = Site.objects.unrestricted()[:2]
+        site = Site.objects.all()[:2]
         params = {'site_id': [site[0].pk, site[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 5)
         params = {'site': [site[0].slug, site[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 5)
 
     def test_tenant(self):
-        tenant = Tenant.objects.unrestricted()[:2]
+        tenant = Tenant.objects.all()[:2]
         params = {'tenant_id': [tenant[0].pk, tenant[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         params = {'tenant': [tenant[0].slug, tenant[1].slug]}
@@ -2553,7 +2553,7 @@ class CableTestCase(TestCase):
 
 
 class PowerPanelTestCase(TestCase):
-    queryset = PowerPanel.objects.unrestricted()
+    queryset = PowerPanel.objects.all()
     filterset = PowerPanelFilterSet
 
     @classmethod
@@ -2598,27 +2598,27 @@ class PowerPanelTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_region(self):
-        regions = Region.objects.unrestricted()[:2]
+        regions = Region.objects.all()[:2]
         params = {'region_id': [regions[0].pk, regions[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'region': [regions[0].slug, regions[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_site(self):
-        sites = Site.objects.unrestricted()[:2]
+        sites = Site.objects.all()[:2]
         params = {'site_id': [sites[0].pk, sites[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'site': [sites[0].slug, sites[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_rack_group(self):
-        rack_groups = RackGroup.objects.unrestricted()[:2]
+        rack_groups = RackGroup.objects.all()[:2]
         params = {'rack_group_id': [rack_groups[0].pk, rack_groups[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
 
 class PowerFeedTestCase(TestCase):
-    queryset = PowerFeed.objects.unrestricted()
+    queryset = PowerFeed.objects.all()
     filterset = PowerFeedFilterSet
 
     @classmethod
@@ -2698,26 +2698,26 @@ class PowerFeedTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_region(self):
-        regions = Region.objects.unrestricted()[:2]
+        regions = Region.objects.all()[:2]
         params = {'region_id': [regions[0].pk, regions[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'region': [regions[0].slug, regions[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_site(self):
-        sites = Site.objects.unrestricted()[:2]
+        sites = Site.objects.all()[:2]
         params = {'site_id': [sites[0].pk, sites[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'site': [sites[0].slug, sites[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_power_panel_id(self):
-        power_panels = PowerPanel.objects.unrestricted()[:2]
+        power_panels = PowerPanel.objects.all()[:2]
         params = {'power_panel_id': [power_panels[0].pk, power_panels[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_rack_id(self):
-        racks = Rack.objects.unrestricted()[:2]
+        racks = Rack.objects.all()[:2]
         params = {'rack_id': [racks[0].pk, racks[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 

+ 15 - 15
netbox/extras/filters.py

@@ -130,83 +130,83 @@ class ConfigContextFilterSet(BaseFilterSet):
     )
     region_id = django_filters.ModelMultipleChoiceFilter(
         field_name='regions',
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         label='Region',
     )
     region = django_filters.ModelMultipleChoiceFilter(
         field_name='regions__slug',
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         to_field_name='slug',
         label='Region (slug)',
     )
     site_id = django_filters.ModelMultipleChoiceFilter(
         field_name='sites',
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         label='Site',
     )
     site = django_filters.ModelMultipleChoiceFilter(
         field_name='sites__slug',
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         to_field_name='slug',
         label='Site (slug)',
     )
     role_id = django_filters.ModelMultipleChoiceFilter(
         field_name='roles',
-        queryset=DeviceRole.objects.unrestricted(),
+        queryset=DeviceRole.objects.all(),
         label='Role',
     )
     role = django_filters.ModelMultipleChoiceFilter(
         field_name='roles__slug',
-        queryset=DeviceRole.objects.unrestricted(),
+        queryset=DeviceRole.objects.all(),
         to_field_name='slug',
         label='Role (slug)',
     )
     platform_id = django_filters.ModelMultipleChoiceFilter(
         field_name='platforms',
-        queryset=Platform.objects.unrestricted(),
+        queryset=Platform.objects.all(),
         label='Platform',
     )
     platform = django_filters.ModelMultipleChoiceFilter(
         field_name='platforms__slug',
-        queryset=Platform.objects.unrestricted(),
+        queryset=Platform.objects.all(),
         to_field_name='slug',
         label='Platform (slug)',
     )
     cluster_group_id = django_filters.ModelMultipleChoiceFilter(
         field_name='cluster_groups',
-        queryset=ClusterGroup.objects.unrestricted(),
+        queryset=ClusterGroup.objects.all(),
         label='Cluster group',
     )
     cluster_group = django_filters.ModelMultipleChoiceFilter(
         field_name='cluster_groups__slug',
-        queryset=ClusterGroup.objects.unrestricted(),
+        queryset=ClusterGroup.objects.all(),
         to_field_name='slug',
         label='Cluster group (slug)',
     )
     cluster_id = django_filters.ModelMultipleChoiceFilter(
         field_name='clusters',
-        queryset=Cluster.objects.unrestricted(),
+        queryset=Cluster.objects.all(),
         label='Cluster',
     )
     tenant_group_id = django_filters.ModelMultipleChoiceFilter(
         field_name='tenant_groups',
-        queryset=TenantGroup.objects.unrestricted(),
+        queryset=TenantGroup.objects.all(),
         label='Tenant group',
     )
     tenant_group = django_filters.ModelMultipleChoiceFilter(
         field_name='tenant_groups__slug',
-        queryset=TenantGroup.objects.unrestricted(),
+        queryset=TenantGroup.objects.all(),
         to_field_name='slug',
         label='Tenant group (slug)',
     )
     tenant_id = django_filters.ModelMultipleChoiceFilter(
         field_name='tenants',
-        queryset=Tenant.objects.unrestricted(),
+        queryset=Tenant.objects.all(),
         label='Tenant',
     )
     tenant = django_filters.ModelMultipleChoiceFilter(
         field_name='tenants__slug',
-        queryset=Tenant.objects.unrestricted(),
+        queryset=Tenant.objects.all(),
         to_field_name='slug',
         label='Tenant (slug)',
     )

+ 1 - 1
netbox/extras/middleware.py

@@ -145,7 +145,7 @@ class ObjectChangeMiddleware(object):
         # one or more changes being logged.
         if settings.CHANGELOG_RETENTION and random.randint(1, 100) == 1:
             cutoff = timezone.now() - timedelta(days=settings.CHANGELOG_RETENTION)
-            purged_count, _ = ObjectChange.objects.unrestricted().filter(
+            purged_count, _ = ObjectChange.objects.filter(
                 time__lt=cutoff
             ).delete()
 

+ 1 - 1
netbox/extras/models/models.py

@@ -540,7 +540,7 @@ class ConfigContextModel(models.Model):
 
         # Compile all config data, overwriting lower-weight values with higher-weight values where a collision occurs
         data = OrderedDict()
-        for context in ConfigContext.objects.unrestricted().get_for_object(self):
+        for context in ConfigContext.objects.get_for_object(self):
             data = deepmerge(data, context.data)
 
         # If the object has local config context data defined, merge it last

+ 11 - 11
netbox/extras/tests/test_filters.py

@@ -11,7 +11,7 @@ from virtualization.models import Cluster, ClusterGroup, ClusterType
 
 
 class GraphTestCase(TestCase):
-    queryset = Graph.objects.unrestricted()
+    queryset = Graph.objects.all()
     filterset = GraphFilterSet
 
     @classmethod
@@ -46,7 +46,7 @@ class GraphTestCase(TestCase):
 
 
 class ExportTemplateTestCase(TestCase):
-    queryset = ExportTemplate.objects.unrestricted()
+    queryset = ExportTemplate.objects.all()
     filterset = ExportTemplateFilterSet
 
     @classmethod
@@ -79,7 +79,7 @@ class ExportTemplateTestCase(TestCase):
 
 
 class ConfigContextTestCase(TestCase):
-    queryset = ConfigContext.objects.unrestricted()
+    queryset = ConfigContext.objects.all()
     filterset = ConfigContextFilterSet
 
     @classmethod
@@ -176,54 +176,54 @@ class ConfigContextTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_region(self):
-        regions = Region.objects.unrestricted()[:2]
+        regions = Region.objects.all()[:2]
         params = {'region_id': [regions[0].pk, regions[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'region': [regions[0].slug, regions[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_site(self):
-        sites = Site.objects.unrestricted()[:2]
+        sites = Site.objects.all()[:2]
         params = {'site_id': [sites[0].pk, sites[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'site': [sites[0].slug, sites[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_role(self):
-        device_roles = DeviceRole.objects.unrestricted()[:2]
+        device_roles = DeviceRole.objects.all()[:2]
         params = {'role_id': [device_roles[0].pk, device_roles[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'role': [device_roles[0].slug, device_roles[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_platform(self):
-        platforms = Platform.objects.unrestricted()[:2]
+        platforms = Platform.objects.all()[:2]
         params = {'platform_id': [platforms[0].pk, platforms[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'platform': [platforms[0].slug, platforms[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_cluster_group(self):
-        cluster_groups = ClusterGroup.objects.unrestricted()[:2]
+        cluster_groups = ClusterGroup.objects.all()[:2]
         params = {'cluster_group_id': [cluster_groups[0].pk, cluster_groups[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'cluster_group': [cluster_groups[0].slug, cluster_groups[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_cluster(self):
-        clusters = Cluster.objects.unrestricted()[:2]
+        clusters = Cluster.objects.all()[:2]
         params = {'cluster_id': [clusters[0].pk, clusters[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_tenant_group(self):
-        tenant_groups = TenantGroup.objects.unrestricted()[:2]
+        tenant_groups = TenantGroup.objects.all()[:2]
         params = {'tenant_group_id': [tenant_groups[0].pk, tenant_groups[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'tenant_group': [tenant_groups[0].slug, tenant_groups[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_tenant_(self):
-        tenants = Tenant.objects.unrestricted()[:2]
+        tenants = Tenant.objects.all()[:2]
         params = {'tenant_id': [tenants[0].pk, tenants[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'tenant': [tenants[0].slug, tenants[1].slug]}

+ 1 - 2
netbox/ipam/api/views.py

@@ -276,8 +276,7 @@ class VLANViewSet(CustomFieldModelViewSet):
 
 class ServiceViewSet(ModelViewSet):
     queryset = Service.objects.prefetch_related(
-        Prefetch('ipaddresses', queryset=IPAddress.objects.unrestricted()),
-        'device', 'virtual_machine', 'tags'
+        'device', 'virtual_machine', 'tags', 'ipaddresses'
     )
     serializer_class = serializers.ServiceSerializer
     filterset_class = filters.ServiceFilterSet

+ 36 - 36
netbox/ipam/filters.py

@@ -71,12 +71,12 @@ class AggregateFilterSet(BaseFilterSet, CustomFieldFilterSet, CreatedUpdatedFilt
         label='Prefix',
     )
     rir_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=RIR.objects.unrestricted(),
+        queryset=RIR.objects.all(),
         label='RIR (ID)',
     )
     rir = django_filters.ModelMultipleChoiceFilter(
         field_name='rir__slug',
-        queryset=RIR.objects.unrestricted(),
+        queryset=RIR.objects.all(),
         to_field_name='slug',
         label='RIR (slug)',
     )
@@ -148,40 +148,40 @@ class PrefixFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldFilterSet, Cre
         label='Mask length',
     )
     vrf_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=VRF.objects.unrestricted(),
+        queryset=VRF.objects.all(),
         label='VRF',
     )
     vrf = django_filters.ModelMultipleChoiceFilter(
         field_name='vrf__rd',
-        queryset=VRF.objects.unrestricted(),
+        queryset=VRF.objects.all(),
         to_field_name='rd',
         label='VRF (RD)',
     )
     region_id = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='site__region',
         lookup_expr='in',
         label='Region (ID)',
     )
     region = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='site__region',
         lookup_expr='in',
         to_field_name='slug',
         label='Region (slug)',
     )
     site_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         label='Site (ID)',
     )
     site = django_filters.ModelMultipleChoiceFilter(
         field_name='site__slug',
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         to_field_name='slug',
         label='Site (slug)',
     )
     vlan_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=VLAN.objects.unrestricted(),
+        queryset=VLAN.objects.all(),
         label='VLAN (ID)',
     )
     vlan_vid = django_filters.NumberFilter(
@@ -189,12 +189,12 @@ class PrefixFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldFilterSet, Cre
         label='VLAN number (1-4095)',
     )
     role_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=Role.objects.unrestricted(),
+        queryset=Role.objects.all(),
         label='Role (ID)',
     )
     role = django_filters.ModelMultipleChoiceFilter(
         field_name='role__slug',
-        queryset=Role.objects.unrestricted(),
+        queryset=Role.objects.all(),
         to_field_name='slug',
         label='Role (slug)',
     )
@@ -290,12 +290,12 @@ class IPAddressFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldFilterSet,
         label='Mask length',
     )
     vrf_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=VRF.objects.unrestricted(),
+        queryset=VRF.objects.all(),
         label='VRF',
     )
     vrf = django_filters.ModelMultipleChoiceFilter(
         field_name='vrf__rd',
-        queryset=VRF.objects.unrestricted(),
+        queryset=VRF.objects.all(),
         to_field_name='rd',
         label='VRF (RD)',
     )
@@ -321,24 +321,24 @@ class IPAddressFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldFilterSet,
     )
     interface = django_filters.ModelMultipleChoiceFilter(
         field_name='interface__name',
-        queryset=Interface.objects.unrestricted(),
+        queryset=Interface.objects.all(),
         to_field_name='name',
         label='Interface (name)',
     )
     interface_id = django_filters.ModelMultipleChoiceFilter(
         field_name='interface',
-        queryset=Interface.objects.unrestricted(),
+        queryset=Interface.objects.all(),
         label='Interface (ID)',
     )
     vminterface = django_filters.ModelMultipleChoiceFilter(
         field_name='vminterface__name',
-        queryset=VMInterface.objects.unrestricted(),
+        queryset=VMInterface.objects.all(),
         to_field_name='name',
         label='VM interface (name)',
     )
     vminterface_id = django_filters.ModelMultipleChoiceFilter(
         field_name='vminterface',
-        queryset=VMInterface.objects.unrestricted(),
+        queryset=VMInterface.objects.all(),
         label='VM interface (ID)',
     )
     assigned_to_interface = django_filters.BooleanFilter(
@@ -390,7 +390,7 @@ class IPAddressFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldFilterSet,
         return queryset.filter(address__net_mask_length=value)
 
     def filter_device(self, queryset, name, value):
-        devices = Device.objects.unrestricted().filter(**{'{}__in'.format(name): value})
+        devices = Device.objects.filter(**{'{}__in'.format(name): value})
         if not devices.exists():
             return queryset.none()
         interface_ids = []
@@ -401,12 +401,12 @@ class IPAddressFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldFilterSet,
         )
 
     def filter_virtual_machine(self, queryset, name, value):
-        virtual_machines = VirtualMachine.objects.unrestricted().filter(**{'{}__in'.format(name): value})
+        virtual_machines = VirtualMachine.objects.filter(**{'{}__in'.format(name): value})
         if not virtual_machines.exists():
             return queryset.none()
         interface_ids = []
         for vm in virtual_machines:
-            interface_ids.extend(vm.interfaces.unrestricted().values_list('id', flat=True))
+            interface_ids.extend(vm.interfaces.values_list('id', flat=True))
         return queryset.filter(
             vminterface__in=interface_ids
         )
@@ -417,25 +417,25 @@ class IPAddressFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldFilterSet,
 
 class VLANGroupFilterSet(BaseFilterSet, NameSlugSearchFilterSet):
     region_id = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='site__region',
         lookup_expr='in',
         label='Region (ID)',
     )
     region = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='site__region',
         lookup_expr='in',
         to_field_name='slug',
         label='Region (slug)',
     )
     site_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         label='Site (ID)',
     )
     site = django_filters.ModelMultipleChoiceFilter(
         field_name='site__slug',
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         to_field_name='slug',
         label='Site (slug)',
     )
@@ -451,45 +451,45 @@ class VLANFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldFilterSet, Creat
         label='Search',
     )
     region_id = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='site__region',
         lookup_expr='in',
         label='Region (ID)',
     )
     region = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='site__region',
         lookup_expr='in',
         to_field_name='slug',
         label='Region (slug)',
     )
     site_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         label='Site (ID)',
     )
     site = django_filters.ModelMultipleChoiceFilter(
         field_name='site__slug',
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         to_field_name='slug',
         label='Site (slug)',
     )
     group_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=VLANGroup.objects.unrestricted(),
+        queryset=VLANGroup.objects.all(),
         label='Group (ID)',
     )
     group = django_filters.ModelMultipleChoiceFilter(
         field_name='group__slug',
-        queryset=VLANGroup.objects.unrestricted(),
+        queryset=VLANGroup.objects.all(),
         to_field_name='slug',
         label='Group',
     )
     role_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=Role.objects.unrestricted(),
+        queryset=Role.objects.all(),
         label='Role (ID)',
     )
     role = django_filters.ModelMultipleChoiceFilter(
         field_name='role__slug',
-        queryset=Role.objects.unrestricted(),
+        queryset=Role.objects.all(),
         to_field_name='slug',
         label='Role (slug)',
     )
@@ -520,22 +520,22 @@ class ServiceFilterSet(BaseFilterSet, CreatedUpdatedFilterSet):
         label='Search',
     )
     device_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=Device.objects.unrestricted(),
+        queryset=Device.objects.all(),
         label='Device (ID)',
     )
     device = django_filters.ModelMultipleChoiceFilter(
         field_name='device__name',
-        queryset=Device.objects.unrestricted(),
+        queryset=Device.objects.all(),
         to_field_name='name',
         label='Device (name)',
     )
     virtual_machine_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=VirtualMachine.objects.unrestricted(),
+        queryset=VirtualMachine.objects.all(),
         label='Virtual machine (ID)',
     )
     virtual_machine = django_filters.ModelMultipleChoiceFilter(
         field_name='virtual_machine__name',
-        queryset=VirtualMachine.objects.unrestricted(),
+        queryset=VirtualMachine.objects.all(),
         to_field_name='name',
         label='Virtual machine (name)',
     )

+ 14 - 14
netbox/ipam/models.py

@@ -215,7 +215,7 @@ class Aggregate(ChangeLoggedModel, CustomFieldModel):
                 })
 
             # Ensure that the aggregate being added is not covered by an existing aggregate
-            covering_aggregates = Aggregate.objects.unrestricted().filter(
+            covering_aggregates = Aggregate.objects.filter(
                 prefix__net_contains_or_equals=str(self.prefix)
             )
             if self.pk:
@@ -228,7 +228,7 @@ class Aggregate(ChangeLoggedModel, CustomFieldModel):
                 })
 
             # Ensure that the aggregate being added does not cover an existing aggregate
-            covered_aggregates = Aggregate.objects.unrestricted().filter(prefix__net_contained=str(self.prefix))
+            covered_aggregates = Aggregate.objects.filter(prefix__net_contained=str(self.prefix))
             if self.pk:
                 covered_aggregates = covered_aggregates.exclude(pk=self.pk)
             if covered_aggregates:
@@ -256,7 +256,7 @@ class Aggregate(ChangeLoggedModel, CustomFieldModel):
         """
         Determine the prefix utilization of the aggregate and return it as a percentage.
         """
-        queryset = Prefix.objects.unrestricted().filter(prefix__net_contained_or_equal=str(self.prefix))
+        queryset = Prefix.objects.filter(prefix__net_contained_or_equal=str(self.prefix))
         child_prefixes = netaddr.IPSet([p.prefix for p in queryset])
         return int(float(child_prefixes.size) / self.prefix.size * 100)
 
@@ -470,7 +470,7 @@ class Prefix(ChangeLoggedModel, CustomFieldModel):
         return self.STATUS_CLASS_MAP.get(self.status)
 
     def get_duplicates(self):
-        return Prefix.objects.unrestricted().filter(vrf=self.vrf, prefix=str(self.prefix)).exclude(pk=self.pk)
+        return Prefix.objects.filter(vrf=self.vrf, prefix=str(self.prefix)).exclude(pk=self.pk)
 
     def get_child_prefixes(self):
         """
@@ -478,9 +478,9 @@ class Prefix(ChangeLoggedModel, CustomFieldModel):
         Prefixes belonging to any VRF.
         """
         if self.vrf is None and self.status == PrefixStatusChoices.STATUS_CONTAINER:
-            return Prefix.objects.unrestricted().filter(prefix__net_contained=str(self.prefix))
+            return Prefix.objects.filter(prefix__net_contained=str(self.prefix))
         else:
-            return Prefix.objects.unrestricted().filter(prefix__net_contained=str(self.prefix), vrf=self.vrf)
+            return Prefix.objects.filter(prefix__net_contained=str(self.prefix), vrf=self.vrf)
 
     def get_child_ips(self):
         """
@@ -488,9 +488,9 @@ class Prefix(ChangeLoggedModel, CustomFieldModel):
         child IPAddresses belonging to any VRF.
         """
         if self.vrf is None and self.status == PrefixStatusChoices.STATUS_CONTAINER:
-            return IPAddress.objects.unrestricted().filter(address__net_host_contained=str(self.prefix))
+            return IPAddress.objects.filter(address__net_host_contained=str(self.prefix))
         else:
-            return IPAddress.objects.unrestricted().filter(address__net_host_contained=str(self.prefix), vrf=self.vrf)
+            return IPAddress.objects.filter(address__net_host_contained=str(self.prefix), vrf=self.vrf)
 
     def get_available_prefixes(self):
         """
@@ -554,7 +554,7 @@ class Prefix(ChangeLoggedModel, CustomFieldModel):
         "container", calculate utilization based on child prefixes. For all others, count child IP addresses.
         """
         if self.status == PrefixStatusChoices.STATUS_CONTAINER:
-            queryset = Prefix.objects.unrestricted().filter(
+            queryset = Prefix.objects.filter(
                 prefix__net_contained=str(self.prefix),
                 vrf=self.vrf
             )
@@ -694,7 +694,7 @@ class IPAddress(ChangeLoggedModel, CustomFieldModel):
         return reverse('ipam:ipaddress', args=[self.pk])
 
     def get_duplicates(self):
-        return IPAddress.objects.unrestricted().filter(
+        return IPAddress.objects.filter(
             vrf=self.vrf,
             address__net_host=str(self.address.ip)
         ).exclude(pk=self.pk)
@@ -726,7 +726,7 @@ class IPAddress(ChangeLoggedModel, CustomFieldModel):
 
         # Check for primary IP assignment that doesn't match the assigned device/VM
         if self.pk and type(self.assigned_object) is Interface:
-            device = Device.objects.unrestricted().filter(Q(primary_ip4=self) | Q(primary_ip6=self)).first()
+            device = Device.objects.filter(Q(primary_ip4=self) | Q(primary_ip6=self)).first()
             if device:
                 if self.assigned_object is None:
                     raise ValidationError({
@@ -738,7 +738,7 @@ class IPAddress(ChangeLoggedModel, CustomFieldModel):
                                      f"{self.assigned_object.device} ({self.assigned_object})"
                     })
         elif self.pk and type(self.assigned_object) is VMInterface:
-            vm = VirtualMachine.unrestricted().objects.filter(Q(primary_ip4=self) | Q(primary_ip6=self)).first()
+            vm = VirtualMachine.objects.filter(Q(primary_ip4=self) | Q(primary_ip6=self)).first()
             if vm:
                 if self.assigned_object is None:
                     raise ValidationError({
@@ -867,7 +867,7 @@ class VLANGroup(ChangeLoggedModel):
         """
         Return the first available VLAN ID (1-4094) in the group.
         """
-        vlan_ids = VLAN.objects.unrestricted().filter(group=self).values_list('vid', flat=True)
+        vlan_ids = VLAN.objects.filter(group=self).values_list('vid', flat=True)
         for i in range(1, 4095):
             if i not in vlan_ids:
                 return i
@@ -994,7 +994,7 @@ class VLAN(ChangeLoggedModel, CustomFieldModel):
 
     def get_members(self):
         # Return all interfaces assigned to this VLAN
-        return Interface.objects.unrestricted().filter(
+        return Interface.objects.filter(
             Q(untagged_vlan_id=self.pk) |
             Q(tagged_vlans=self.pk)
         ).distinct()

+ 1 - 1
netbox/ipam/tests/test_api.py

@@ -411,7 +411,7 @@ class VLANTest(APIViewTestCases.APIViewTestCase):
         """
         Attempt and fail to delete a VLAN with a Prefix assigned to it.
         """
-        vlan = VLAN.objects.unrestricted().first()
+        vlan = VLAN.objects.first()
         Prefix.objects.create(prefix=IPNetwork('192.0.2.0/24'), vlan=vlan)
 
         self.add_permissions('ipam.delete_vlan')

+ 36 - 36
netbox/ipam/tests/test_filters.py

@@ -9,7 +9,7 @@ from tenancy.models import Tenant, TenantGroup
 
 
 class VRFTestCase(TestCase):
-    queryset = VRF.objects.unrestricted()
+    queryset = VRF.objects.all()
     filterset = VRFFilterSet
 
     @classmethod
@@ -59,14 +59,14 @@ class VRFTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
 
     def test_tenant(self):
-        tenants = Tenant.objects.unrestricted()[:2]
+        tenants = Tenant.objects.all()[:2]
         params = {'tenant_id': [tenants[0].pk, tenants[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         params = {'tenant': [tenants[0].slug, tenants[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_tenant_group(self):
-        tenant_groups = TenantGroup.objects.unrestricted()[:2]
+        tenant_groups = TenantGroup.objects.all()[:2]
         params = {'tenant_group_id': [tenant_groups[0].pk, tenant_groups[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         params = {'tenant_group': [tenant_groups[0].slug, tenant_groups[1].slug]}
@@ -74,7 +74,7 @@ class VRFTestCase(TestCase):
 
 
 class RIRTestCase(TestCase):
-    queryset = RIR.objects.unrestricted()
+    queryset = RIR.objects.all()
     filterset = RIRFilterSet
 
     @classmethod
@@ -114,7 +114,7 @@ class RIRTestCase(TestCase):
 
 
 class AggregateTestCase(TestCase):
-    queryset = Aggregate.objects.unrestricted()
+    queryset = Aggregate.objects.all()
     filterset = AggregateFilterSet
 
     @classmethod
@@ -155,7 +155,7 @@ class AggregateTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1)
 
     def test_rir(self):
-        rirs = RIR.objects.unrestricted()[:2]
+        rirs = RIR.objects.all()[:2]
         params = {'rir_id': [rirs[0].pk, rirs[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         params = {'rir': [rirs[0].slug, rirs[1].slug]}
@@ -163,7 +163,7 @@ class AggregateTestCase(TestCase):
 
 
 class RoleTestCase(TestCase):
-    queryset = Role.objects.unrestricted()
+    queryset = Role.objects.all()
     filterset = RoleFilterSet
 
     @classmethod
@@ -190,7 +190,7 @@ class RoleTestCase(TestCase):
 
 
 class PrefixTestCase(TestCase):
-    queryset = Prefix.objects.unrestricted()
+    queryset = Prefix.objects.all()
     filterset = PrefixFilterSet
 
     @classmethod
@@ -295,28 +295,28 @@ class PrefixTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_vrf(self):
-        vrfs = VRF.objects.unrestricted()[:2]
+        vrfs = VRF.objects.all()[:2]
         params = {'vrf_id': [vrfs[0].pk, vrfs[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         params = {'vrf': [vrfs[0].rd, vrfs[1].rd]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_region(self):
-        regions = Region.objects.unrestricted()[:2]
+        regions = Region.objects.all()[:2]
         params = {'region_id': [regions[0].pk, regions[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         params = {'region': [regions[0].slug, regions[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_site(self):
-        sites = Site.objects.unrestricted()[:2]
+        sites = Site.objects.all()[:2]
         params = {'site_id': [sites[0].pk, sites[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         params = {'site': [sites[0].slug, sites[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_vlan(self):
-        vlans = VLAN.objects.unrestricted()[:2]
+        vlans = VLAN.objects.all()[:2]
         params = {'vlan_id': [vlans[0].pk, vlans[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         # TODO: Test for multiple values
@@ -324,7 +324,7 @@ class PrefixTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_role(self):
-        roles = Role.objects.unrestricted()[:2]
+        roles = Role.objects.all()[:2]
         params = {'role_id': [roles[0].pk, roles[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         params = {'role': [roles[0].slug, roles[1].slug]}
@@ -335,14 +335,14 @@ class PrefixTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_tenant(self):
-        tenants = Tenant.objects.unrestricted()[:2]
+        tenants = Tenant.objects.all()[:2]
         params = {'tenant_id': [tenants[0].pk, tenants[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         params = {'tenant': [tenants[0].slug, tenants[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_tenant_group(self):
-        tenant_groups = TenantGroup.objects.unrestricted()[:2]
+        tenant_groups = TenantGroup.objects.all()[:2]
         params = {'tenant_group_id': [tenant_groups[0].pk, tenant_groups[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         params = {'tenant_group': [tenant_groups[0].slug, tenant_groups[1].slug]}
@@ -350,7 +350,7 @@ class PrefixTestCase(TestCase):
 
 
 class IPAddressTestCase(TestCase):
-    queryset = IPAddress.objects.unrestricted()
+    queryset = IPAddress.objects.all()
     filterset = IPAddressFilterSet
 
     @classmethod
@@ -466,35 +466,35 @@ class IPAddressTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_vrf(self):
-        vrfs = VRF.objects.unrestricted()[:2]
+        vrfs = VRF.objects.all()[:2]
         params = {'vrf_id': [vrfs[0].pk, vrfs[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         params = {'vrf': [vrfs[0].rd, vrfs[1].rd]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_device(self):
-        devices = Device.objects.unrestricted()[:2]
+        devices = Device.objects.all()[:2]
         params = {'device_id': [devices[0].pk, devices[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'device': [devices[0].name, devices[1].name]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_virtual_machine(self):
-        vms = VirtualMachine.objects.unrestricted()[:2]
+        vms = VirtualMachine.objects.all()[:2]
         params = {'virtual_machine_id': [vms[0].pk, vms[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'virtual_machine': [vms[0].name, vms[1].name]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_interface(self):
-        interfaces = Interface.objects.unrestricted()[:2]
+        interfaces = Interface.objects.all()[:2]
         params = {'interface_id': [interfaces[0].pk, interfaces[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'interface': ['Interface 1', 'Interface 2']}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_vminterface(self):
-        vminterfaces = VMInterface.objects.unrestricted()[:2]
+        vminterfaces = VMInterface.objects.all()[:2]
         params = {'vminterface_id': [vminterfaces[0].pk, vminterfaces[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'vminterface': ['Interface 1', 'Interface 2']}
@@ -515,14 +515,14 @@ class IPAddressTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_tenant(self):
-        tenants = Tenant.objects.unrestricted()[:2]
+        tenants = Tenant.objects.all()[:2]
         params = {'tenant_id': [tenants[0].pk, tenants[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         params = {'tenant': [tenants[0].slug, tenants[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_tenant_group(self):
-        tenant_groups = TenantGroup.objects.unrestricted()[:2]
+        tenant_groups = TenantGroup.objects.all()[:2]
         params = {'tenant_group_id': [tenant_groups[0].pk, tenant_groups[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         params = {'tenant_group': [tenant_groups[0].slug, tenant_groups[1].slug]}
@@ -530,7 +530,7 @@ class IPAddressTestCase(TestCase):
 
 
 class VLANGroupTestCase(TestCase):
-    queryset = VLANGroup.objects.unrestricted()
+    queryset = VLANGroup.objects.all()
     filterset = VLANGroupFilterSet
 
     @classmethod
@@ -577,14 +577,14 @@ class VLANGroupTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_region(self):
-        regions = Region.objects.unrestricted()[:2]
+        regions = Region.objects.all()[:2]
         params = {'region_id': [regions[0].pk, regions[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'region': [regions[0].slug, regions[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_site(self):
-        sites = Site.objects.unrestricted()[:2]
+        sites = Site.objects.all()[:2]
         params = {'site_id': [sites[0].pk, sites[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'site': [sites[0].slug, sites[1].slug]}
@@ -592,7 +592,7 @@ class VLANGroupTestCase(TestCase):
 
 
 class VLANTestCase(TestCase):
-    queryset = VLAN.objects.unrestricted()
+    queryset = VLAN.objects.all()
     filterset = VLANFilterSet
 
     @classmethod
@@ -666,28 +666,28 @@ class VLANTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
 
     def test_region(self):
-        regions = Region.objects.unrestricted()[:2]
+        regions = Region.objects.all()[:2]
         params = {'region_id': [regions[0].pk, regions[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         params = {'region': [regions[0].slug, regions[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_site(self):
-        sites = Site.objects.unrestricted()[:2]
+        sites = Site.objects.all()[:2]
         params = {'site_id': [sites[0].pk, sites[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         params = {'site': [sites[0].slug, sites[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_group(self):
-        groups = VLANGroup.objects.unrestricted()[:2]
+        groups = VLANGroup.objects.all()[:2]
         params = {'group_id': [groups[0].pk, groups[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         params = {'group': [groups[0].slug, groups[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_role(self):
-        roles = Role.objects.unrestricted()[:2]
+        roles = Role.objects.all()[:2]
         params = {'role_id': [roles[0].pk, roles[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         params = {'role': [roles[0].slug, roles[1].slug]}
@@ -698,14 +698,14 @@ class VLANTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_tenant(self):
-        tenants = Tenant.objects.unrestricted()[:2]
+        tenants = Tenant.objects.all()[:2]
         params = {'tenant_id': [tenants[0].pk, tenants[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         params = {'tenant': [tenants[0].slug, tenants[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
 
     def test_tenant_group(self):
-        tenant_groups = TenantGroup.objects.unrestricted()[:2]
+        tenant_groups = TenantGroup.objects.all()[:2]
         params = {'tenant_group_id': [tenant_groups[0].pk, tenant_groups[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4)
         params = {'tenant_group': [tenant_groups[0].slug, tenant_groups[1].slug]}
@@ -713,7 +713,7 @@ class VLANTestCase(TestCase):
 
 
 class ServiceTestCase(TestCase):
-    queryset = Service.objects.unrestricted()
+    queryset = Service.objects.all()
     filterset = ServiceFilterSet
 
     @classmethod
@@ -768,14 +768,14 @@ class ServiceTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3)
 
     def test_device(self):
-        devices = Device.objects.unrestricted()[:2]
+        devices = Device.objects.all()[:2]
         params = {'device_id': [devices[0].pk, devices[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'device': [devices[0].name, devices[1].name]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_virtual_machine(self):
-        vms = VirtualMachine.objects.unrestricted()[:2]
+        vms = VirtualMachine.objects.all()[:2]
         params = {'virtual_machine_id': [vms[0].pk, vms[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'virtual_machine': [vms[0].name, vms[1].name]}

+ 2 - 2
netbox/ipam/tests/test_models.py

@@ -43,7 +43,7 @@ class TestPrefix(TestCase):
             Prefix(prefix=netaddr.IPNetwork('192.0.2.0/24')),
             Prefix(prefix=netaddr.IPNetwork('192.0.2.0/24')),
         ))
-        duplicate_prefix_pks = [p.pk for p in prefixes[0].get_duplicates().unrestricted()]
+        duplicate_prefix_pks = [p.pk for p in prefixes[0].get_duplicates()]
 
         self.assertSetEqual(set(duplicate_prefix_pks), {prefixes[1].pk, prefixes[2].pk})
 
@@ -227,7 +227,7 @@ class TestIPAddress(TestCase):
             IPAddress(address=netaddr.IPNetwork('192.0.2.1/24')),
             IPAddress(address=netaddr.IPNetwork('192.0.2.1/24')),
         ))
-        duplicate_ip_pks = [p.pk for p in ips[0].get_duplicates().unrestricted()]
+        duplicate_ip_pks = [p.pk for p in ips[0].get_duplicates()]
 
         self.assertSetEqual(set(duplicate_ip_pks), {ips[1].pk, ips[2].pk})
 

+ 3 - 3
netbox/ipam/tests/test_ordering.py

@@ -86,7 +86,7 @@ class PrefixOrderingTestCase(OrderingTestBase):
         Prefix.objects.bulk_create(prefixes)
 
         # Test
-        self._compare(Prefix.objects.unrestricted(), prefixes)
+        self._compare(Prefix.objects.all(), prefixes)
 
     def test_prefix_complex_ordering(self):
         """
@@ -122,7 +122,7 @@ class PrefixOrderingTestCase(OrderingTestBase):
         Prefix.objects.bulk_create(prefixes)
 
         # Test
-        self._compare(Prefix.objects.unrestricted(), prefixes)
+        self._compare(Prefix.objects.all(), prefixes)
 
 
 class IPAddressOrderingTestCase(OrderingTestBase):
@@ -173,4 +173,4 @@ class IPAddressOrderingTestCase(OrderingTestBase):
         IPAddress.objects.bulk_create(addresses)
 
         # Test
-        self._compare(IPAddress.objects.unrestricted(), addresses)
+        self._compare(IPAddress.objects.all(), addresses)

+ 3 - 8
netbox/ipam/views.py

@@ -729,8 +729,7 @@ class VLANGroupVLANsView(ObjectView):
 
 class VLANListView(ObjectListView):
     queryset = VLAN.objects.prefetch_related(
-        Prefetch('prefixes', Prefix.objects.unrestricted()),
-        'site', 'group', 'tenant', 'role'
+        'site', 'group', 'tenant', 'role', 'prefixes'
     )
     filterset = filters.VLANFilterSet
     filterset_form = forms.VLANFilterForm
@@ -820,9 +819,7 @@ class ServiceListView(ObjectListView):
 
 
 class ServiceView(ObjectView):
-    queryset = Service.objects.prefetch_related(
-        Prefetch('ipaddresses', IPAddress.objects.unrestricted())
-    )
+    queryset = Service.objects.prefetch_related('ipaddresses')
 
     def get(self, request, pk):
 
@@ -834,9 +831,7 @@ class ServiceView(ObjectView):
 
 
 class ServiceEditView(ObjectEditView):
-    queryset = Service.objects.prefetch_related(
-        Prefetch('ipaddresses', IPAddress.objects.unrestricted())
-    )
+    queryset = Service.objects.prefetch_related('ipaddresses')
     model_form = forms.ServiceForm
     template_name = 'ipam/service_edit.html'
 

+ 1 - 1
netbox/netbox/authentication.py

@@ -24,7 +24,7 @@ class ObjectPermissionBackend(ModelBackend):
         Return all permissions granted to the user by an ObjectPermission.
         """
         # Retrieve all assigned and enabled ObjectPermissions
-        object_permissions = ObjectPermission.objects.unrestricted().filter(
+        object_permissions = ObjectPermission.objects.filter(
             Q(users=user_obj) | Q(groups__user=user_obj),
             enabled=True
         ).prefetch_related('object_types')

+ 4 - 4
netbox/secrets/filters.py

@@ -26,22 +26,22 @@ class SecretFilterSet(BaseFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterS
         label='Search',
     )
     role_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=SecretRole.objects.unrestricted(),
+        queryset=SecretRole.objects.all(),
         label='Role (ID)',
     )
     role = django_filters.ModelMultipleChoiceFilter(
         field_name='role__slug',
-        queryset=SecretRole.objects.unrestricted(),
+        queryset=SecretRole.objects.all(),
         to_field_name='slug',
         label='Role (slug)',
     )
     device_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=Device.objects.unrestricted(),
+        queryset=Device.objects.all(),
         label='Device (ID)',
     )
     device = django_filters.ModelMultipleChoiceFilter(
         field_name='device__name',
-        queryset=Device.objects.unrestricted(),
+        queryset=Device.objects.all(),
         to_field_name='name',
         label='Device (name)',
     )

+ 4 - 4
netbox/secrets/tests/test_filters.py

@@ -6,7 +6,7 @@ from secrets.models import Secret, SecretRole
 
 
 class SecretRoleTestCase(TestCase):
-    queryset = SecretRole.objects.unrestricted()
+    queryset = SecretRole.objects.all()
     filterset = SecretRoleFilterSet
 
     @classmethod
@@ -33,7 +33,7 @@ class SecretRoleTestCase(TestCase):
 
 
 class SecretTestCase(TestCase):
-    queryset = Secret.objects.unrestricted()
+    queryset = Secret.objects.all()
     filterset = SecretFilterSet
 
     @classmethod
@@ -76,14 +76,14 @@ class SecretTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_role(self):
-        roles = SecretRole.objects.unrestricted()[:2]
+        roles = SecretRole.objects.all()[:2]
         params = {'role_id': [roles[0].pk, roles[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'role': [roles[0].slug, roles[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_device(self):
-        devices = Device.objects.unrestricted()[:2]
+        devices = Device.objects.all()[:2]
         params = {'device_id': [devices[0].pk, devices[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'device': [devices[0].name, devices[1].name]}

+ 8 - 8
netbox/tenancy/filters.py

@@ -15,12 +15,12 @@ __all__ = (
 
 class TenantGroupFilterSet(BaseFilterSet, NameSlugSearchFilterSet):
     parent_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=TenantGroup.objects.unrestricted(),
+        queryset=TenantGroup.objects.all(),
         label='Tenant group (ID)',
     )
     parent = django_filters.ModelMultipleChoiceFilter(
         field_name='parent__slug',
-        queryset=TenantGroup.objects.unrestricted(),
+        queryset=TenantGroup.objects.all(),
         to_field_name='slug',
         label='Tenant group group (slug)',
     )
@@ -36,13 +36,13 @@ class TenantFilterSet(BaseFilterSet, CustomFieldFilterSet, CreatedUpdatedFilterS
         label='Search',
     )
     group_id = TreeNodeMultipleChoiceFilter(
-        queryset=TenantGroup.objects.unrestricted(),
+        queryset=TenantGroup.objects.all(),
         field_name='group',
         lookup_expr='in',
         label='Tenant group (ID)',
     )
     group = TreeNodeMultipleChoiceFilter(
-        queryset=TenantGroup.objects.unrestricted(),
+        queryset=TenantGroup.objects.all(),
         field_name='group',
         lookup_expr='in',
         to_field_name='slug',
@@ -70,24 +70,24 @@ class TenancyFilterSet(django_filters.FilterSet):
     An inheritable FilterSet for models which support Tenant assignment.
     """
     tenant_group_id = TreeNodeMultipleChoiceFilter(
-        queryset=TenantGroup.objects.unrestricted(),
+        queryset=TenantGroup.objects.all(),
         field_name='tenant__group',
         lookup_expr='in',
         label='Tenant Group (ID)',
     )
     tenant_group = TreeNodeMultipleChoiceFilter(
-        queryset=TenantGroup.objects.unrestricted(),
+        queryset=TenantGroup.objects.all(),
         field_name='tenant__group',
         to_field_name='slug',
         lookup_expr='in',
         label='Tenant Group (slug)',
     )
     tenant_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=Tenant.objects.unrestricted(),
+        queryset=Tenant.objects.all(),
         label='Tenant (ID)',
     )
     tenant = django_filters.ModelMultipleChoiceFilter(
-        queryset=Tenant.objects.unrestricted(),
+        queryset=Tenant.objects.all(),
         field_name='tenant__slug',
         to_field_name='slug',
         label='Tenant (slug)',

+ 3 - 3
netbox/tenancy/tests/test_filters.py

@@ -5,7 +5,7 @@ from tenancy.models import Tenant, TenantGroup
 
 
 class TenantGroupTestCase(TestCase):
-    queryset = TenantGroup.objects.unrestricted()
+    queryset = TenantGroup.objects.all()
     filterset = TenantGroupFilterSet
 
     @classmethod
@@ -52,7 +52,7 @@ class TenantGroupTestCase(TestCase):
 
 
 class TenantTestCase(TestCase):
-    queryset = Tenant.objects.unrestricted()
+    queryset = Tenant.objects.all()
     filterset = TenantFilterSet
 
     @classmethod
@@ -86,7 +86,7 @@ class TenantTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_group(self):
-        group = TenantGroup.objects.unrestricted()[:2]
+        group = TenantGroup.objects.all()[:2]
         params = {'group_id': [group[0].pk, group[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'group': [group[0].slug, group[1].slug]}

+ 3 - 3
netbox/users/admin.py

@@ -180,7 +180,7 @@ class ActionListFilter(admin.SimpleListFilter):
 
     def lookups(self, request, model_admin):
         options = set()
-        for action_list in ObjectPermission.objects.unrestricted().values_list('actions', flat=True).distinct():
+        for action_list in ObjectPermission.objects.values_list('actions', flat=True).distinct():
             options.update(action_list)
         return [
             (action, action) for action in sorted(options)
@@ -196,7 +196,7 @@ class ObjectTypeListFilter(admin.SimpleListFilter):
     parameter_name = 'object_type'
 
     def lookups(self, request, model_admin):
-        object_types = ObjectPermission.objects.unrestricted().values_list('id', flat=True).distinct()
+        object_types = ObjectPermission.objects.values_list('id', flat=True).distinct()
         content_types = ContentType.objects.filter(pk__in=object_types).order_by('app_label', 'model')
         return [
             (ct.pk, ct) for ct in content_types
@@ -238,7 +238,7 @@ class ObjectPermissionAdmin(admin.ModelAdmin):
     ]
 
     def get_queryset(self, request):
-        return super().get_queryset(request).unrestricted().prefetch_related('object_types', 'users', 'groups')
+        return super().get_queryset(request).prefetch_related('object_types', 'users', 'groups')
 
     def get_name(self, obj):
         return obj.name or f'Permission #{obj.pk}'

+ 0 - 4
netbox/utilities/api.py

@@ -244,8 +244,6 @@ class WritableNestedSerializer(serializers.ModelSerializer):
         if isinstance(data, dict):
             params = dict_to_filter_params(data)
             queryset = self.Meta.model.objects
-            if hasattr(queryset, 'restrict'):
-                queryset = queryset.unrestricted()
             try:
                 return queryset.get(**params)
             except ObjectDoesNotExist:
@@ -274,8 +272,6 @@ class WritableNestedSerializer(serializers.ModelSerializer):
 
         # Look up object by PK
         queryset = self.Meta.model.objects
-        if hasattr(queryset, 'restrict'):
-            queryset = queryset.unrestricted()
         try:
             return queryset.get(pk=int(data))
         except ObjectDoesNotExist:

+ 1 - 5
netbox/utilities/mptt.py

@@ -16,8 +16,4 @@ class TreeManager(Manager.from_queryset(TreeQuerySet), TreeManager_):
     """
     Extend django-mptt's TreeManager to incorporate RestrictedQuerySet().
     """
-    def db_manager(self, using=None, hints=None):
-        manager = super().db_manager(using, hints)
-
-        # Return an unrestricted QuerySet for use by MPTT
-        return manager.unrestricted()
+    pass

+ 0 - 43
netbox/utilities/querysets.py

@@ -1,5 +1,3 @@
-import logging
-
 from django.db.models import Q, QuerySet
 
 from utilities.permissions import permission_is_exempt
@@ -21,44 +19,6 @@ class DummyQuerySet:
 
 class RestrictedQuerySet(QuerySet):
 
-    def __init__(self, *args, **kwargs):
-        super().__init__(*args, **kwargs)
-
-        # Initialize the allow_evaluation flag to False. This indicates that the QuerySet has not yet been restricted.
-        self.allow_evaluation = False
-
-    def _check_restriction(self):
-        # Raise a warning if the QuerySet is evaluated without first calling restrict() or unrestricted().
-        if not getattr(self, 'allow_evaluation', False):
-            logger = logging.getLogger('netbox.RestrictedQuerySet')
-            logger.warning(
-                f'Evaluation of RestrictedQuerySet prior to calling restrict() or unrestricted(): {self.model}'
-            )
-
-    def _clone(self):
-
-        # Persist the allow_evaluation flag when cloning the QuerySet.
-        c = super()._clone()
-        c.allow_evaluation = self.allow_evaluation
-
-        return c
-
-    def _fetch_all(self):
-        self._check_restriction()
-        return super()._fetch_all()
-
-    def count(self):
-        self._check_restriction()
-        return super().count()
-
-    def unrestricted(self):
-        """
-        Bypass restriction for the QuerySet. This is necessary in cases where we are not interacting with the objects
-        directly (e.g. when filtering by related object).
-        """
-        self.allow_evaluation = True
-        return self
-
     def restrict(self, user, action='view'):
         """
         Filter the QuerySet to return only objects on which the specified user has been granted the specified
@@ -88,7 +48,4 @@ class RestrictedQuerySet(QuerySet):
                     attrs |= Q(**perm_attrs)
             qs = self.filter(attrs)
 
-        # Allow QuerySet evaluation
-        qs.allow_evaluation = True
-
         return qs

+ 1 - 3
netbox/utilities/testing/views.py

@@ -158,10 +158,8 @@ class ModelTestCase(TestCase):
 
     def _get_queryset(self):
         """
-        Return a base queryset suitable for use in test methods. Call unrestricted() if RestrictedQuerySet is in use.
+        Return a base queryset suitable for use in test methods.
         """
-        if hasattr(self.model.objects, 'restrict'):
-            return self.model.objects.unrestricted()
         return self.model.objects.all()
 
 

+ 1 - 2
netbox/virtualization/api/views.py

@@ -79,8 +79,7 @@ class VirtualMachineViewSet(CustomFieldModelViewSet):
 
 class VMInterfaceViewSet(ModelViewSet):
     queryset = VMInterface.objects.prefetch_related(
-        Prefetch('tagged_vlans', queryset=VLAN.objects.unrestricted()),
-        'virtual_machine', 'tags'
+        'virtual_machine', 'tags', 'tagged_vlans'
     )
     serializer_class = serializers.VMInterfaceSerializer
     filterset_class = filters.VMInterfaceFilterSet

+ 25 - 25
netbox/virtualization/filters.py

@@ -40,45 +40,45 @@ class ClusterFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldFilterSet, Cr
         label='Search',
     )
     region_id = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='site__region',
         lookup_expr='in',
         label='Region (ID)',
     )
     region = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='site__region',
         lookup_expr='in',
         to_field_name='slug',
         label='Region (slug)',
     )
     site_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         label='Site (ID)',
     )
     site = django_filters.ModelMultipleChoiceFilter(
         field_name='site__slug',
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         to_field_name='slug',
         label='Site (slug)',
     )
     group_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=ClusterGroup.objects.unrestricted(),
+        queryset=ClusterGroup.objects.all(),
         label='Parent group (ID)',
     )
     group = django_filters.ModelMultipleChoiceFilter(
         field_name='group__slug',
-        queryset=ClusterGroup.objects.unrestricted(),
+        queryset=ClusterGroup.objects.all(),
         to_field_name='slug',
         label='Parent group (slug)',
     )
     type_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=ClusterType.objects.unrestricted(),
+        queryset=ClusterType.objects.all(),
         label='Cluster type (ID)',
     )
     type = django_filters.ModelMultipleChoiceFilter(
         field_name='type__slug',
-        queryset=ClusterType.objects.unrestricted(),
+        queryset=ClusterType.objects.all(),
         to_field_name='slug',
         label='Cluster type (slug)',
     )
@@ -114,38 +114,38 @@ class VirtualMachineFilterSet(
     )
     cluster_group_id = django_filters.ModelMultipleChoiceFilter(
         field_name='cluster__group',
-        queryset=ClusterGroup.objects.unrestricted(),
+        queryset=ClusterGroup.objects.all(),
         label='Cluster group (ID)',
     )
     cluster_group = django_filters.ModelMultipleChoiceFilter(
         field_name='cluster__group__slug',
-        queryset=ClusterGroup.objects.unrestricted(),
+        queryset=ClusterGroup.objects.all(),
         to_field_name='slug',
         label='Cluster group (slug)',
     )
     cluster_type_id = django_filters.ModelMultipleChoiceFilter(
         field_name='cluster__type',
-        queryset=ClusterType.objects.unrestricted(),
+        queryset=ClusterType.objects.all(),
         label='Cluster type (ID)',
     )
     cluster_type = django_filters.ModelMultipleChoiceFilter(
         field_name='cluster__type__slug',
-        queryset=ClusterType.objects.unrestricted(),
+        queryset=ClusterType.objects.all(),
         to_field_name='slug',
         label='Cluster type (slug)',
     )
     cluster_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=Cluster.objects.unrestricted(),
+        queryset=Cluster.objects.all(),
         label='Cluster (ID)',
     )
     region_id = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='cluster__site__region',
         lookup_expr='in',
         label='Region (ID)',
     )
     region = TreeNodeMultipleChoiceFilter(
-        queryset=Region.objects.unrestricted(),
+        queryset=Region.objects.all(),
         field_name='cluster__site__region',
         lookup_expr='in',
         to_field_name='slug',
@@ -153,32 +153,32 @@ class VirtualMachineFilterSet(
     )
     site_id = django_filters.ModelMultipleChoiceFilter(
         field_name='cluster__site',
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         label='Site (ID)',
     )
     site = django_filters.ModelMultipleChoiceFilter(
         field_name='cluster__site__slug',
-        queryset=Site.objects.unrestricted(),
+        queryset=Site.objects.all(),
         to_field_name='slug',
         label='Site (slug)',
     )
     role_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=DeviceRole.objects.unrestricted(),
+        queryset=DeviceRole.objects.all(),
         label='Role (ID)',
     )
     role = django_filters.ModelMultipleChoiceFilter(
         field_name='role__slug',
-        queryset=DeviceRole.objects.unrestricted(),
+        queryset=DeviceRole.objects.all(),
         to_field_name='slug',
         label='Role (slug)',
     )
     platform_id = django_filters.ModelMultipleChoiceFilter(
-        queryset=Platform.objects.unrestricted(),
+        queryset=Platform.objects.all(),
         label='Platform (ID)',
     )
     platform = django_filters.ModelMultipleChoiceFilter(
         field_name='platform__slug',
-        queryset=Platform.objects.unrestricted(),
+        queryset=Platform.objects.all(),
         to_field_name='slug',
         label='Platform (slug)',
     )
@@ -208,23 +208,23 @@ class VMInterfaceFilterSet(BaseFilterSet):
     )
     cluster_id = django_filters.ModelMultipleChoiceFilter(
         field_name='virtual_machine__cluster',
-        queryset=Cluster.objects.unrestricted(),
+        queryset=Cluster.objects.all(),
         label='Cluster (ID)',
     )
     cluster = django_filters.ModelMultipleChoiceFilter(
         field_name='virtual_machine__cluster__name',
-        queryset=Cluster.objects.unrestricted(),
+        queryset=Cluster.objects.all(),
         to_field_name='name',
         label='Cluster',
     )
     virtual_machine_id = django_filters.ModelMultipleChoiceFilter(
         field_name='virtual_machine',
-        queryset=VirtualMachine.objects.unrestricted(),
+        queryset=VirtualMachine.objects.all(),
         label='Virtual machine (ID)',
     )
     virtual_machine = django_filters.ModelMultipleChoiceFilter(
         field_name='virtual_machine__name',
-        queryset=VirtualMachine.objects.unrestricted(),
+        queryset=VirtualMachine.objects.all(),
         to_field_name='name',
         label='Virtual machine',
     )

+ 2 - 2
netbox/virtualization/models.py

@@ -177,7 +177,7 @@ class Cluster(ChangeLoggedModel, CustomFieldModel):
 
         # If the Cluster is assigned to a Site, verify that all host Devices belong to that Site.
         if self.pk and self.site:
-            nonsite_devices = Device.objects.unrestricted().filter(cluster=self).exclude(site=self.site).count()
+            nonsite_devices = Device.objects.filter(cluster=self).exclude(site=self.site).count()
             if nonsite_devices:
                 raise ValidationError({
                     'site': "{} devices are assigned as hosts for this cluster but are not in site {}".format(
@@ -317,7 +317,7 @@ class VirtualMachine(ChangeLoggedModel, ConfigContextModel, CustomFieldModel):
         # Check for a duplicate name on a VM assigned to the same Cluster and no Tenant. This is necessary
         # because Django does not consider two NULL fields to be equal, and thus will not trigger a violation
         # of the uniqueness constraint without manual intervention.
-        if self.tenant is None and VirtualMachine.objects.unrestricted().exclude(pk=self.pk).filter(
+        if self.tenant is None and VirtualMachine.objects.exclude(pk=self.pk).filter(
                 name=self.name, tenant__isnull=True
         ):
             raise ValidationError({

+ 3 - 3
netbox/virtualization/tests/test_api.py

@@ -164,7 +164,7 @@ class VirtualMachineTest(APIViewTestCases.APIViewTestCase):
         """
         Check that config context data is included by default in the virtual machines list.
         """
-        virtualmachine = VirtualMachine.objects.unrestricted().first()
+        virtualmachine = VirtualMachine.objects.first()
         url = '{}?id={}'.format(reverse('virtualization-api:virtualmachine-list'), virtualmachine.pk)
         self.add_permissions('virtualization.view_virtualmachine')
 
@@ -187,7 +187,7 @@ class VirtualMachineTest(APIViewTestCases.APIViewTestCase):
         """
         data = {
             'name': 'Virtual Machine 1',
-            'cluster': Cluster.objects.unrestricted().first().pk,
+            'cluster': Cluster.objects.first().pk,
         }
         url = reverse('virtualization-api:virtualmachine-list')
         self.add_permissions('virtualization.add_virtualmachine')
@@ -260,7 +260,7 @@ class VMInterfaceTest(APIViewTestCases.APIViewTestCase):
 
         self.add_permissions('virtualization.view_vminterface')
         url = reverse('virtualization-api:vminterface-graphs', kwargs={
-            'pk': VMInterface.objects.unrestricted().first().pk
+            'pk': VMInterface.objects.first().pk
         })
         response = self.client.get(url, **self.header)
 

+ 21 - 21
netbox/virtualization/tests/test_filters.py

@@ -8,7 +8,7 @@ from virtualization.models import Cluster, ClusterGroup, ClusterType, VirtualMac
 
 
 class ClusterTypeTestCase(TestCase):
-    queryset = ClusterType.objects.unrestricted()
+    queryset = ClusterType.objects.all()
     filterset = ClusterTypeFilterSet
 
     @classmethod
@@ -39,7 +39,7 @@ class ClusterTypeTestCase(TestCase):
 
 
 class ClusterGroupTestCase(TestCase):
-    queryset = ClusterGroup.objects.unrestricted()
+    queryset = ClusterGroup.objects.all()
     filterset = ClusterGroupFilterSet
 
     @classmethod
@@ -70,7 +70,7 @@ class ClusterGroupTestCase(TestCase):
 
 
 class ClusterTestCase(TestCase):
-    queryset = Cluster.objects.unrestricted()
+    queryset = Cluster.objects.all()
     filterset = ClusterFilterSet
 
     @classmethod
@@ -137,42 +137,42 @@ class ClusterTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_region(self):
-        regions = Region.objects.unrestricted()[:2]
+        regions = Region.objects.all()[:2]
         params = {'region_id': [regions[0].pk, regions[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'region': [regions[0].slug, regions[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_site(self):
-        sites = Site.objects.unrestricted()[:2]
+        sites = Site.objects.all()[:2]
         params = {'site_id': [sites[0].pk, sites[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'site': [sites[0].slug, sites[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_group(self):
-        groups = ClusterGroup.objects.unrestricted()[:2]
+        groups = ClusterGroup.objects.all()[:2]
         params = {'group_id': [groups[0].pk, groups[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'group': [groups[0].slug, groups[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_type(self):
-        types = ClusterType.objects.unrestricted()[:2]
+        types = ClusterType.objects.all()[:2]
         params = {'type_id': [types[0].pk, types[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'type': [types[0].slug, types[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_tenant(self):
-        tenants = Tenant.objects.unrestricted()[:2]
+        tenants = Tenant.objects.all()[:2]
         params = {'tenant_id': [tenants[0].pk, tenants[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'tenant': [tenants[0].slug, tenants[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_tenant_group(self):
-        tenant_groups = TenantGroup.objects.unrestricted()[:2]
+        tenant_groups = TenantGroup.objects.all()[:2]
         params = {'tenant_group_id': [tenant_groups[0].pk, tenant_groups[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'tenant_group': [tenant_groups[0].slug, tenant_groups[1].slug]}
@@ -180,7 +180,7 @@ class ClusterTestCase(TestCase):
 
 
 class VirtualMachineTestCase(TestCase):
-    queryset = VirtualMachine.objects.unrestricted()
+    queryset = VirtualMachine.objects.all()
     filterset = VirtualMachineFilterSet
 
     @classmethod
@@ -291,21 +291,21 @@ class VirtualMachineTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_cluster_group(self):
-        groups = ClusterGroup.objects.unrestricted()[:2]
+        groups = ClusterGroup.objects.all()[:2]
         params = {'cluster_group_id': [groups[0].pk, groups[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'cluster_group': [groups[0].slug, groups[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_cluster_type(self):
-        types = ClusterType.objects.unrestricted()[:2]
+        types = ClusterType.objects.all()[:2]
         params = {'cluster_type_id': [types[0].pk, types[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'cluster_type': [types[0].slug, types[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_cluster(self):
-        clusters = Cluster.objects.unrestricted()[:2]
+        clusters = Cluster.objects.all()[:2]
         params = {'cluster_id': [clusters[0].pk, clusters[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         # TODO: 'cluster' should match on name
@@ -313,28 +313,28 @@ class VirtualMachineTestCase(TestCase):
         # self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_region(self):
-        regions = Region.objects.unrestricted()[:2]
+        regions = Region.objects.all()[:2]
         params = {'region_id': [regions[0].pk, regions[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'region': [regions[0].slug, regions[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_site(self):
-        sites = Site.objects.unrestricted()[:2]
+        sites = Site.objects.all()[:2]
         params = {'site_id': [sites[0].pk, sites[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'site': [sites[0].slug, sites[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_role(self):
-        roles = DeviceRole.objects.unrestricted()[:2]
+        roles = DeviceRole.objects.all()[:2]
         params = {'role_id': [roles[0].pk, roles[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'role': [roles[0].slug, roles[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_platform(self):
-        platforms = Platform.objects.unrestricted()[:2]
+        platforms = Platform.objects.all()[:2]
         params = {'platform_id': [platforms[0].pk, platforms[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'platform': [platforms[0].slug, platforms[1].slug]}
@@ -351,14 +351,14 @@ class VirtualMachineTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_tenant(self):
-        tenants = Tenant.objects.unrestricted()[:2]
+        tenants = Tenant.objects.all()[:2]
         params = {'tenant_id': [tenants[0].pk, tenants[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'tenant': [tenants[0].slug, tenants[1].slug]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_tenant_group(self):
-        tenant_groups = TenantGroup.objects.unrestricted()[:2]
+        tenant_groups = TenantGroup.objects.all()[:2]
         params = {'tenant_group_id': [tenant_groups[0].pk, tenant_groups[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'tenant_group': [tenant_groups[0].slug, tenant_groups[1].slug]}
@@ -366,7 +366,7 @@ class VirtualMachineTestCase(TestCase):
 
 
 class VMInterfaceTestCase(TestCase):
-    queryset = VMInterface.objects.unrestricted()
+    queryset = VMInterface.objects.all()
     filterset = VMInterfaceFilterSet
 
     @classmethod
@@ -420,7 +420,7 @@ class VMInterfaceTestCase(TestCase):
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
 
     def test_virtual_machine(self):
-        vms = VirtualMachine.objects.unrestricted()[:2]
+        vms = VirtualMachine.objects.all()[:2]
         params = {'virtual_machine_id': [vms[0].pk, vms[1].pk]}
         self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2)
         params = {'virtual_machine': [vms[0].name, vms[1].name]}