mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-14 09:51:22 -06:00
Fixes #11934: Prevent reassignment of an IP address designated as primary for its parent object
This commit is contained in:
parent
24a51dd86e
commit
b64b19a3f4
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|
||||||
|
* [#11934](https://github.com/netbox-community/netbox/issues/11934) - Prevent reassignment of an IP address designated as primary for its parent object
|
||||||
* [#12694](https://github.com/netbox-community/netbox/issues/12694) - Strip leading & trailing whitespace from custom link URL & text
|
* [#12694](https://github.com/netbox-community/netbox/issues/12694) - Strip leading & trailing whitespace from custom link URL & text
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -328,6 +328,12 @@ class IPAddressForm(TenancyForm, NetBoxModelForm):
|
|||||||
):
|
):
|
||||||
self.initial['primary_for_parent'] = True
|
self.initial['primary_for_parent'] = True
|
||||||
|
|
||||||
|
# Disable object assignment fields if the IP address is designated as primary
|
||||||
|
if self.initial.get('primary_for_parent'):
|
||||||
|
self.fields['interface'].disabled = True
|
||||||
|
self.fields['vminterface'].disabled = True
|
||||||
|
self.fields['fhrpgroup'].disabled = True
|
||||||
|
|
||||||
def clean(self):
|
def clean(self):
|
||||||
super().clean()
|
super().clean()
|
||||||
|
|
||||||
@ -340,7 +346,12 @@ class IPAddressForm(TenancyForm, NetBoxModelForm):
|
|||||||
selected_objects[1]: "An IP address can only be assigned to a single object."
|
selected_objects[1]: "An IP address can only be assigned to a single object."
|
||||||
})
|
})
|
||||||
elif selected_objects:
|
elif selected_objects:
|
||||||
self.instance.assigned_object = self.cleaned_data[selected_objects[0]]
|
assigned_object = self.cleaned_data[selected_objects[0]]
|
||||||
|
if self.cleaned_data['primary_for_parent'] and assigned_object != self.instance.assigned_object:
|
||||||
|
raise ValidationError(
|
||||||
|
"Cannot reassign IP address while it is designated as the primary IP for the parent object"
|
||||||
|
)
|
||||||
|
self.instance.assigned_object = assigned_object
|
||||||
else:
|
else:
|
||||||
self.instance.assigned_object = None
|
self.instance.assigned_object = None
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user