Преглед на файлове

Fix restriction violations for provider, circuit models

Jeremy Stretch преди 5 години
родител
ревизия
ffa3a229b5
променени са 3 файла, в които са добавени 8 реда и са изтрити 3 реда
  1. 6 1
      netbox/circuits/views.py
  2. 1 1
      netbox/templates/circuits/inc/circuit_termination.html
  3. 1 1
      netbox/templates/circuits/provider.html

+ 6 - 1
netbox/circuits/views.py

@@ -136,18 +136,23 @@ class CircuitView(ObjectView):
     queryset = Circuit.objects.prefetch_related('provider', 'type', 'tenant__group')
     queryset = Circuit.objects.prefetch_related('provider', 'type', 'tenant__group')
 
 
     def get(self, request, pk):
     def get(self, request, pk):
-
         circuit = get_object_or_404(self.queryset, pk=pk)
         circuit = get_object_or_404(self.queryset, pk=pk)
+
         termination_a = CircuitTermination.objects.restrict(request.user, 'view').prefetch_related(
         termination_a = CircuitTermination.objects.restrict(request.user, 'view').prefetch_related(
             'site__region', 'connected_endpoint__device'
             'site__region', 'connected_endpoint__device'
         ).filter(
         ).filter(
             circuit=circuit, term_side=CircuitTerminationSideChoices.SIDE_A
             circuit=circuit, term_side=CircuitTerminationSideChoices.SIDE_A
         ).first()
         ).first()
+        if termination_a and termination_a.connected_endpoint:
+            termination_a.ip_addresses = termination_a.connected_endpoint.ip_addresses.restrict(request.user, 'view')
+
         termination_z = CircuitTermination.objects.restrict(request.user, 'view').prefetch_related(
         termination_z = CircuitTermination.objects.restrict(request.user, 'view').prefetch_related(
             'site__region', 'connected_endpoint__device'
             'site__region', 'connected_endpoint__device'
         ).filter(
         ).filter(
             circuit=circuit, term_side=CircuitTerminationSideChoices.SIDE_Z
             circuit=circuit, term_side=CircuitTerminationSideChoices.SIDE_Z
         ).first()
         ).first()
+        if termination_z and termination_z.connected_endpoint:
+            termination_z.ip_addresses = termination_z.connected_endpoint.ip_addresses.restrict(request.user, 'view')
 
 
         return render(request, 'circuits/circuit.html', {
         return render(request, 'circuits/circuit.html', {
             'circuit': circuit,
             'circuit': circuit,

+ 1 - 1
netbox/templates/circuits/inc/circuit_termination.html

@@ -90,7 +90,7 @@
                 <td>IP Addressing</td>
                 <td>IP Addressing</td>
                 <td>
                 <td>
                     {% if termination.connected_endpoint %}
                     {% if termination.connected_endpoint %}
-                        {% for ip in termination.connected_endpoint.ip_addresses.all %}
+                        {% for ip in termination.ip_addresses %}
                             {% if not forloop.first %}<br />{% endif %}
                             {% if not forloop.first %}<br />{% endif %}
                             <a href="{% url 'ipam:ipaddress' pk=ip.pk %}">{{ ip }}</a> ({{ ip.vrf|default:"Global" }})
                             <a href="{% url 'ipam:ipaddress' pk=ip.pk %}">{{ ip }}</a> ({{ ip.vrf|default:"Global" }})
                         {% empty %}
                         {% empty %}

+ 1 - 1
netbox/templates/circuits/provider.html

@@ -99,7 +99,7 @@
                 <tr>
                 <tr>
                     <td>Circuits</td>
                     <td>Circuits</td>
                     <td>
                     <td>
-                        <a href="{% url 'circuits:circuit_list' %}?provider={{ provider.slug }}">{{ provider.circuits.count }}</a>
+                        <a href="{% url 'circuits:circuit_list' %}?provider={{ provider.slug }}">{{ circuits_table.rows|length }}</a>
                     </td>
                     </td>
                 </tr>
                 </tr>
             </table>
             </table>