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

Fix restriction violations for rack model

Jeremy Stretch 5 лет назад
Родитель
Сommit
efed2bc262
2 измененных файлов с 6 добавлено и 4 удалено
  1. 5 3
      netbox/dcim/views.py
  2. 1 1
      netbox/templates/dcim/rack.html

+ 5 - 3
netbox/dcim/views.py

@@ -370,7 +370,6 @@ class RackView(ObjectView):
     queryset = Rack.objects.prefetch_related('site__region', 'tenant__group', 'group', 'role')
 
     def get(self, request, pk):
-
         rack = get_object_or_404(self.queryset, pk=pk)
 
         nonracked_devices = Device.objects.restrict(request.user, 'view').filter(
@@ -378,10 +377,12 @@ class RackView(ObjectView):
             position__isnull=True,
             parent_bay__isnull=True
         ).prefetch_related('device_type__manufacturer')
+
+        peer_racks = Rack.objects.restrict(request.user, 'view').filter(site=rack.site)
         if rack.group:
-            peer_racks = Rack.objects.filter(site=rack.site, group=rack.group)
+            peer_racks = peer_racks.filter(group=rack.group)
         else:
-            peer_racks = Rack.objects.filter(site=rack.site, group__isnull=True)
+            peer_racks = peer_racks.filter(group__isnull=True)
         next_rack = peer_racks.filter(name__gt=rack.name).order_by('name').first()
         prev_rack = peer_racks.filter(name__lt=rack.name).order_by('-name').first()
 
@@ -390,6 +391,7 @@ class RackView(ObjectView):
 
         return render(request, 'dcim/rack.html', {
             'rack': rack,
+            'device_count': Device.objects.restrict(request.user, 'view').filter(rack=rack).count(),
             'reservations': reservations,
             'power_feeds': power_feeds,
             'nonracked_devices': nonracked_devices,

+ 1 - 1
netbox/templates/dcim/rack.html

@@ -138,7 +138,7 @@
                 <tr>
                     <td>Devices</td>
                     <td>
-                        <a href="{% url 'dcim:device_list' %}?rack_id={{ rack.id }}">{{ rack.devices.count }}</a>
+                        <a href="{% url 'dcim:device_list' %}?rack_id={{ rack.id }}">{{ device_count }}</a>
                     </td>
                 </tr>
                     <tr>