From 11fa348575f513e0992a8a9b222a160ed6b791fa Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 19 Nov 2020 09:45:01 -0500 Subject: [PATCH] Fixes #5358: Fix user table configuration for VM interfaces --- docs/release-notes/version-2.10.md | 8 ++ netbox/netbox/settings.py | 2 +- .../virtualization/virtualmachine.html | 82 ++++++++++--------- netbox/virtualization/tables.py | 8 +- netbox/virtualization/views.py | 2 +- 5 files changed, 57 insertions(+), 45 deletions(-) diff --git a/docs/release-notes/version-2.10.md b/docs/release-notes/version-2.10.md index d2182b0af..d2f0d56a2 100644 --- a/docs/release-notes/version-2.10.md +++ b/docs/release-notes/version-2.10.md @@ -1,5 +1,13 @@ # NetBox v2.10 +## v2.10-beta2 (FUTURE) + +### Bug Fixes + +* [#5358](https://github.com/netbox-community/netbox/issues/5358) - Fix user table configuration for VM interfaces + +--- + ## v2.10-beta1 (2020-11-17) **NOTE:** This release completely removes support for embedded graphs. diff --git a/netbox/netbox/settings.py b/netbox/netbox/settings.py index a3f4f0b89..c915a7785 100644 --- a/netbox/netbox/settings.py +++ b/netbox/netbox/settings.py @@ -16,7 +16,7 @@ from django.core.validators import URLValidator # Environment setup # -VERSION = '2.10-beta1' +VERSION = '2.10-beta2' # Hostname HOSTNAME = platform.node() diff --git a/netbox/templates/virtualization/virtualmachine.html b/netbox/templates/virtualization/virtualmachine.html index 6a3aa1388..5058c97f2 100644 --- a/netbox/templates/virtualization/virtualmachine.html +++ b/netbox/templates/virtualization/virtualmachine.html @@ -266,54 +266,56 @@
- {% if perms.virtualization.change_vminterface or perms.virtualization.delete_vminterface %} -
+ {% csrf_token %} - {% endif %} -
-
- Interfaces -
- +
+
+ Interfaces +
+ {% if request.user.is_authenticated %} + + {% endif %} +
+
+ +
+ {% include 'responsive_table.html' with table=vminterface_table %} + {% if perms.virtualization.add_vminterface or perms.virtualization.delete_vminterface %} + + {% endif %}
- {% include 'responsive_table.html' with table=vminterface_table %} - {% if perms.virtualization.add_vminterface or perms.virtualization.delete_vminterface %} - - {% endif %} -
- {% if perms.virtualization.delete_vminterface %} - - {% endif %} + + {% table_config_form vminterface_table %}
{% include 'secrets/inc/private_key_modal.html' %} {% endblock %} {% block javascript %} - - + + {% endblock %} diff --git a/netbox/virtualization/tables.py b/netbox/virtualization/tables.py index 3132394d0..97e1d6e36 100644 --- a/netbox/virtualization/tables.py +++ b/netbox/virtualization/tables.py @@ -161,8 +161,8 @@ class VMInterfaceTable(BaseInterfaceTable): class Meta(BaseTable.Meta): model = VMInterface fields = ( - 'pk', 'virtual_machine', 'name', 'enabled', 'mac_address', 'mtu', 'description', 'tags', 'ip_addresses', - 'untagged_vlan', 'tagged_vlans', + 'pk', 'virtual_machine', 'name', 'enabled', 'mac_address', 'mtu', 'mode', 'description', 'tags', + 'ip_addresses', 'untagged_vlan', 'tagged_vlans', ) default_columns = ('pk', 'virtual_machine', 'name', 'enabled', 'description') @@ -180,4 +180,6 @@ class VirtualMachineVMInterfaceTable(VMInterfaceTable): 'pk', 'name', 'enabled', 'mac_address', 'mtu', 'mode', 'description', 'tags', 'ip_addresses', 'untagged_vlan', 'tagged_vlans', 'actions', ) - default_columns = ('pk', 'name', 'enabled', 'mac_address', 'mtu', 'mode', 'description', 'actions') + default_columns = ( + 'pk', 'name', 'enabled', 'mac_address', 'mtu', 'mode', 'description', 'ip_addresses', 'actions', + ) diff --git a/netbox/virtualization/views.py b/netbox/virtualization/views.py index f04175c19..e22ad670c 100644 --- a/netbox/virtualization/views.py +++ b/netbox/virtualization/views.py @@ -246,7 +246,7 @@ class VirtualMachineView(generic.ObjectView): ).prefetch_related( Prefetch('ip_addresses', queryset=IPAddress.objects.restrict(request.user)) ) - vminterface_table = tables.VirtualMachineVMInterfaceTable(vminterfaces, orderable=False) + vminterface_table = tables.VirtualMachineVMInterfaceTable(vminterfaces, user=request.user, orderable=False) if request.user.has_perm('virtualization.change_vminterface') or \ request.user.has_perm('virtualization.delete_vminterface'): vminterface_table.columns.show('pk')