mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-24 17:38:37 -06:00
Transition BulkEditView to use ObjectPermissionRequiredMixin
This commit is contained in:
parent
5e5038d780
commit
82c247f3cf
@ -78,8 +78,7 @@ class ProviderBulkImportView(BulkImportView):
|
|||||||
default_return_url = 'circuits:provider_list'
|
default_return_url = 'circuits:provider_list'
|
||||||
|
|
||||||
|
|
||||||
class ProviderBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class ProviderBulkEditView(BulkEditView):
|
||||||
permission_required = 'circuits.change_provider'
|
|
||||||
queryset = Provider.objects.annotate(count_circuits=Count('circuits'))
|
queryset = Provider.objects.annotate(count_circuits=Count('circuits'))
|
||||||
filterset = filters.ProviderFilterSet
|
filterset = filters.ProviderFilterSet
|
||||||
table = tables.ProviderTable
|
table = tables.ProviderTable
|
||||||
@ -181,8 +180,7 @@ class CircuitBulkImportView(BulkImportView):
|
|||||||
default_return_url = 'circuits:circuit_list'
|
default_return_url = 'circuits:circuit_list'
|
||||||
|
|
||||||
|
|
||||||
class CircuitBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class CircuitBulkEditView(BulkEditView):
|
||||||
permission_required = 'circuits.change_circuit'
|
|
||||||
queryset = Circuit.objects.prefetch_related('provider', 'type', 'tenant').prefetch_related('terminations__site')
|
queryset = Circuit.objects.prefetch_related('provider', 'type', 'tenant').prefetch_related('terminations__site')
|
||||||
filterset = filters.CircuitFilterSet
|
filterset = filters.CircuitFilterSet
|
||||||
table = tables.CircuitTable
|
table = tables.CircuitTable
|
||||||
|
@ -231,8 +231,7 @@ class SiteBulkImportView(BulkImportView):
|
|||||||
default_return_url = 'dcim:site_list'
|
default_return_url = 'dcim:site_list'
|
||||||
|
|
||||||
|
|
||||||
class SiteBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class SiteBulkEditView(BulkEditView):
|
||||||
permission_required = 'dcim.change_site'
|
|
||||||
queryset = Site.objects.prefetch_related('region', 'tenant')
|
queryset = Site.objects.prefetch_related('region', 'tenant')
|
||||||
filterset = filters.SiteFilterSet
|
filterset = filters.SiteFilterSet
|
||||||
table = tables.SiteTable
|
table = tables.SiteTable
|
||||||
@ -418,8 +417,7 @@ class RackBulkImportView(BulkImportView):
|
|||||||
default_return_url = 'dcim:rack_list'
|
default_return_url = 'dcim:rack_list'
|
||||||
|
|
||||||
|
|
||||||
class RackBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class RackBulkEditView(BulkEditView):
|
||||||
permission_required = 'dcim.change_rack'
|
|
||||||
queryset = Rack.objects.prefetch_related('site', 'group', 'tenant', 'role')
|
queryset = Rack.objects.prefetch_related('site', 'group', 'tenant', 'role')
|
||||||
filterset = filters.RackFilterSet
|
filterset = filters.RackFilterSet
|
||||||
table = tables.RackTable
|
table = tables.RackTable
|
||||||
@ -495,8 +493,7 @@ class RackReservationImportView(BulkImportView):
|
|||||||
return instance
|
return instance
|
||||||
|
|
||||||
|
|
||||||
class RackReservationBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class RackReservationBulkEditView(BulkEditView):
|
||||||
permission_required = 'dcim.change_rackreservation'
|
|
||||||
queryset = RackReservation.objects.prefetch_related('rack', 'user')
|
queryset = RackReservation.objects.prefetch_related('rack', 'user')
|
||||||
filterset = filters.RackReservationFilterSet
|
filterset = filters.RackReservationFilterSet
|
||||||
table = tables.RackReservationTable
|
table = tables.RackReservationTable
|
||||||
@ -658,8 +655,7 @@ class DeviceTypeImportView(PermissionRequiredMixin, ObjectImportView):
|
|||||||
default_return_url = 'dcim:devicetype_import'
|
default_return_url = 'dcim:devicetype_import'
|
||||||
|
|
||||||
|
|
||||||
class DeviceTypeBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class DeviceTypeBulkEditView(BulkEditView):
|
||||||
permission_required = 'dcim.change_devicetype'
|
|
||||||
queryset = DeviceType.objects.prefetch_related('manufacturer').annotate(instance_count=Count('instances'))
|
queryset = DeviceType.objects.prefetch_related('manufacturer').annotate(instance_count=Count('instances'))
|
||||||
filterset = filters.DeviceTypeFilterSet
|
filterset = filters.DeviceTypeFilterSet
|
||||||
table = tables.DeviceTypeTable
|
table = tables.DeviceTypeTable
|
||||||
@ -696,8 +692,7 @@ class ConsolePortTemplateDeleteView(ObjectDeleteView):
|
|||||||
queryset = ConsolePortTemplate.objects.all()
|
queryset = ConsolePortTemplate.objects.all()
|
||||||
|
|
||||||
|
|
||||||
class ConsolePortTemplateBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class ConsolePortTemplateBulkEditView(BulkEditView):
|
||||||
permission_required = 'dcim.change_consoleporttemplate'
|
|
||||||
queryset = ConsolePortTemplate.objects.all()
|
queryset = ConsolePortTemplate.objects.all()
|
||||||
table = tables.ConsolePortTemplateTable
|
table = tables.ConsolePortTemplateTable
|
||||||
form = forms.ConsolePortTemplateBulkEditForm
|
form = forms.ConsolePortTemplateBulkEditForm
|
||||||
@ -730,8 +725,7 @@ class ConsoleServerPortTemplateDeleteView(ObjectDeleteView):
|
|||||||
queryset = ConsoleServerPortTemplate.objects.all()
|
queryset = ConsoleServerPortTemplate.objects.all()
|
||||||
|
|
||||||
|
|
||||||
class ConsoleServerPortTemplateBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class ConsoleServerPortTemplateBulkEditView(BulkEditView):
|
||||||
permission_required = 'dcim.change_consoleserverporttemplate'
|
|
||||||
queryset = ConsoleServerPortTemplate.objects.all()
|
queryset = ConsoleServerPortTemplate.objects.all()
|
||||||
table = tables.ConsoleServerPortTemplateTable
|
table = tables.ConsoleServerPortTemplateTable
|
||||||
form = forms.ConsoleServerPortTemplateBulkEditForm
|
form = forms.ConsoleServerPortTemplateBulkEditForm
|
||||||
@ -764,8 +758,7 @@ class PowerPortTemplateDeleteView(ObjectDeleteView):
|
|||||||
queryset = PowerPortTemplate.objects.all()
|
queryset = PowerPortTemplate.objects.all()
|
||||||
|
|
||||||
|
|
||||||
class PowerPortTemplateBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class PowerPortTemplateBulkEditView(BulkEditView):
|
||||||
permission_required = 'dcim.change_powerporttemplate'
|
|
||||||
queryset = PowerPortTemplate.objects.all()
|
queryset = PowerPortTemplate.objects.all()
|
||||||
table = tables.PowerPortTemplateTable
|
table = tables.PowerPortTemplateTable
|
||||||
form = forms.PowerPortTemplateBulkEditForm
|
form = forms.PowerPortTemplateBulkEditForm
|
||||||
@ -798,8 +791,7 @@ class PowerOutletTemplateDeleteView(ObjectDeleteView):
|
|||||||
queryset = PowerOutletTemplate.objects.all()
|
queryset = PowerOutletTemplate.objects.all()
|
||||||
|
|
||||||
|
|
||||||
class PowerOutletTemplateBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class PowerOutletTemplateBulkEditView(BulkEditView):
|
||||||
permission_required = 'dcim.change_poweroutlettemplate'
|
|
||||||
queryset = PowerOutletTemplate.objects.all()
|
queryset = PowerOutletTemplate.objects.all()
|
||||||
table = tables.PowerOutletTemplateTable
|
table = tables.PowerOutletTemplateTable
|
||||||
form = forms.PowerOutletTemplateBulkEditForm
|
form = forms.PowerOutletTemplateBulkEditForm
|
||||||
@ -832,8 +824,7 @@ class InterfaceTemplateDeleteView(ObjectDeleteView):
|
|||||||
queryset = InterfaceTemplate.objects.all()
|
queryset = InterfaceTemplate.objects.all()
|
||||||
|
|
||||||
|
|
||||||
class InterfaceTemplateBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class InterfaceTemplateBulkEditView(BulkEditView):
|
||||||
permission_required = 'dcim.change_interfacetemplate'
|
|
||||||
queryset = InterfaceTemplate.objects.all()
|
queryset = InterfaceTemplate.objects.all()
|
||||||
table = tables.InterfaceTemplateTable
|
table = tables.InterfaceTemplateTable
|
||||||
form = forms.InterfaceTemplateBulkEditForm
|
form = forms.InterfaceTemplateBulkEditForm
|
||||||
@ -866,8 +857,7 @@ class FrontPortTemplateDeleteView(ObjectDeleteView):
|
|||||||
queryset = FrontPortTemplate.objects.all()
|
queryset = FrontPortTemplate.objects.all()
|
||||||
|
|
||||||
|
|
||||||
class FrontPortTemplateBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class FrontPortTemplateBulkEditView(BulkEditView):
|
||||||
permission_required = 'dcim.change_frontporttemplate'
|
|
||||||
queryset = FrontPortTemplate.objects.all()
|
queryset = FrontPortTemplate.objects.all()
|
||||||
table = tables.FrontPortTemplateTable
|
table = tables.FrontPortTemplateTable
|
||||||
form = forms.FrontPortTemplateBulkEditForm
|
form = forms.FrontPortTemplateBulkEditForm
|
||||||
@ -900,8 +890,7 @@ class RearPortTemplateDeleteView(ObjectDeleteView):
|
|||||||
queryset = RearPortTemplate.objects.all()
|
queryset = RearPortTemplate.objects.all()
|
||||||
|
|
||||||
|
|
||||||
class RearPortTemplateBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class RearPortTemplateBulkEditView(BulkEditView):
|
||||||
permission_required = 'dcim.change_rearporttemplate'
|
|
||||||
queryset = RearPortTemplate.objects.all()
|
queryset = RearPortTemplate.objects.all()
|
||||||
table = tables.RearPortTemplateTable
|
table = tables.RearPortTemplateTable
|
||||||
form = forms.RearPortTemplateBulkEditForm
|
form = forms.RearPortTemplateBulkEditForm
|
||||||
@ -934,7 +923,7 @@ class DeviceBayTemplateDeleteView(ObjectDeleteView):
|
|||||||
queryset = DeviceBayTemplate.objects.all()
|
queryset = DeviceBayTemplate.objects.all()
|
||||||
|
|
||||||
|
|
||||||
# class DeviceBayTemplateBulkEditView(PermissionRequiredMixin, BulkEditView):
|
# class DeviceBayTemplateBulkEditView(BulkEditView):
|
||||||
# permission_required = 'dcim.change_devicebaytemplate'
|
# permission_required = 'dcim.change_devicebaytemplate'
|
||||||
# queryset = DeviceBayTemplate.objects.all()
|
# queryset = DeviceBayTemplate.objects.all()
|
||||||
# table = tables.DeviceBayTemplateTable
|
# table = tables.DeviceBayTemplateTable
|
||||||
@ -1204,8 +1193,7 @@ class ChildDeviceBulkImportView(BulkImportView):
|
|||||||
return obj
|
return obj
|
||||||
|
|
||||||
|
|
||||||
class DeviceBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class DeviceBulkEditView(BulkEditView):
|
||||||
permission_required = 'dcim.change_device'
|
|
||||||
queryset = Device.objects.prefetch_related('tenant', 'site', 'rack', 'device_role', 'device_type__manufacturer')
|
queryset = Device.objects.prefetch_related('tenant', 'site', 'rack', 'device_role', 'device_type__manufacturer')
|
||||||
filterset = filters.DeviceFilterSet
|
filterset = filters.DeviceFilterSet
|
||||||
table = tables.DeviceTable
|
table = tables.DeviceTable
|
||||||
@ -1257,8 +1245,7 @@ class ConsolePortBulkImportView(BulkImportView):
|
|||||||
default_return_url = 'dcim:consoleport_list'
|
default_return_url = 'dcim:consoleport_list'
|
||||||
|
|
||||||
|
|
||||||
class ConsolePortBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class ConsolePortBulkEditView(BulkEditView):
|
||||||
permission_required = 'dcim.change_consoleport'
|
|
||||||
queryset = ConsolePort.objects.all()
|
queryset = ConsolePort.objects.all()
|
||||||
filterset = filters.ConsolePortFilterSet
|
filterset = filters.ConsolePortFilterSet
|
||||||
table = tables.ConsolePortTable
|
table = tables.ConsolePortTable
|
||||||
@ -1309,8 +1296,7 @@ class ConsoleServerPortBulkImportView(BulkImportView):
|
|||||||
default_return_url = 'dcim:consoleserverport_list'
|
default_return_url = 'dcim:consoleserverport_list'
|
||||||
|
|
||||||
|
|
||||||
class ConsoleServerPortBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class ConsoleServerPortBulkEditView(BulkEditView):
|
||||||
permission_required = 'dcim.change_consoleserverport'
|
|
||||||
queryset = ConsoleServerPort.objects.all()
|
queryset = ConsoleServerPort.objects.all()
|
||||||
filterset = filters.ConsoleServerPortFilterSet
|
filterset = filters.ConsoleServerPortFilterSet
|
||||||
table = tables.ConsoleServerPortTable
|
table = tables.ConsoleServerPortTable
|
||||||
@ -1373,8 +1359,7 @@ class PowerPortBulkImportView(BulkImportView):
|
|||||||
default_return_url = 'dcim:powerport_list'
|
default_return_url = 'dcim:powerport_list'
|
||||||
|
|
||||||
|
|
||||||
class PowerPortBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class PowerPortBulkEditView(BulkEditView):
|
||||||
permission_required = 'dcim.change_powerport'
|
|
||||||
queryset = PowerPort.objects.all()
|
queryset = PowerPort.objects.all()
|
||||||
filterset = filters.PowerPortFilterSet
|
filterset = filters.PowerPortFilterSet
|
||||||
table = tables.PowerPortTable
|
table = tables.PowerPortTable
|
||||||
@ -1425,8 +1410,7 @@ class PowerOutletBulkImportView(BulkImportView):
|
|||||||
default_return_url = 'dcim:poweroutlet_list'
|
default_return_url = 'dcim:poweroutlet_list'
|
||||||
|
|
||||||
|
|
||||||
class PowerOutletBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class PowerOutletBulkEditView(BulkEditView):
|
||||||
permission_required = 'dcim.change_poweroutlet'
|
|
||||||
queryset = PowerOutlet.objects.all()
|
queryset = PowerOutlet.objects.all()
|
||||||
filterset = filters.PowerOutletFilterSet
|
filterset = filters.PowerOutletFilterSet
|
||||||
table = tables.PowerOutletTable
|
table = tables.PowerOutletTable
|
||||||
@ -1526,8 +1510,7 @@ class InterfaceBulkImportView(BulkImportView):
|
|||||||
default_return_url = 'dcim:interface_list'
|
default_return_url = 'dcim:interface_list'
|
||||||
|
|
||||||
|
|
||||||
class InterfaceBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class InterfaceBulkEditView(BulkEditView):
|
||||||
permission_required = 'dcim.change_interface'
|
|
||||||
queryset = Interface.objects.all()
|
queryset = Interface.objects.all()
|
||||||
filterset = filters.InterfaceFilterSet
|
filterset = filters.InterfaceFilterSet
|
||||||
table = tables.InterfaceTable
|
table = tables.InterfaceTable
|
||||||
@ -1590,8 +1573,7 @@ class FrontPortBulkImportView(BulkImportView):
|
|||||||
default_return_url = 'dcim:frontport_list'
|
default_return_url = 'dcim:frontport_list'
|
||||||
|
|
||||||
|
|
||||||
class FrontPortBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class FrontPortBulkEditView(BulkEditView):
|
||||||
permission_required = 'dcim.change_frontport'
|
|
||||||
queryset = FrontPort.objects.all()
|
queryset = FrontPort.objects.all()
|
||||||
filterset = filters.FrontPortFilterSet
|
filterset = filters.FrontPortFilterSet
|
||||||
table = tables.FrontPortTable
|
table = tables.FrontPortTable
|
||||||
@ -1654,8 +1636,7 @@ class RearPortBulkImportView(BulkImportView):
|
|||||||
default_return_url = 'dcim:rearport_list'
|
default_return_url = 'dcim:rearport_list'
|
||||||
|
|
||||||
|
|
||||||
class RearPortBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class RearPortBulkEditView(BulkEditView):
|
||||||
permission_required = 'dcim.change_rearport'
|
|
||||||
queryset = RearPort.objects.all()
|
queryset = RearPort.objects.all()
|
||||||
filterset = filters.RearPortFilterSet
|
filterset = filters.RearPortFilterSet
|
||||||
table = tables.RearPortTable
|
table = tables.RearPortTable
|
||||||
@ -1789,8 +1770,7 @@ class DeviceBayBulkImportView(BulkImportView):
|
|||||||
default_return_url = 'dcim:devicebay_list'
|
default_return_url = 'dcim:devicebay_list'
|
||||||
|
|
||||||
|
|
||||||
class DeviceBayBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class DeviceBayBulkEditView(BulkEditView):
|
||||||
permission_required = 'dcim.change_devicebay'
|
|
||||||
queryset = DeviceBay.objects.all()
|
queryset = DeviceBay.objects.all()
|
||||||
filterset = filters.DeviceBayFilterSet
|
filterset = filters.DeviceBayFilterSet
|
||||||
table = tables.DeviceBayTable
|
table = tables.DeviceBayTable
|
||||||
@ -2060,8 +2040,7 @@ class CableBulkImportView(BulkImportView):
|
|||||||
default_return_url = 'dcim:cable_list'
|
default_return_url = 'dcim:cable_list'
|
||||||
|
|
||||||
|
|
||||||
class CableBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class CableBulkEditView(BulkEditView):
|
||||||
permission_required = 'dcim.change_cable'
|
|
||||||
queryset = Cable.objects.prefetch_related('termination_a', 'termination_b')
|
queryset = Cable.objects.prefetch_related('termination_a', 'termination_b')
|
||||||
filterset = filters.CableFilterSet
|
filterset = filters.CableFilterSet
|
||||||
table = tables.CableTable
|
table = tables.CableTable
|
||||||
@ -2216,8 +2195,7 @@ class InventoryItemBulkImportView(BulkImportView):
|
|||||||
default_return_url = 'dcim:inventoryitem_list'
|
default_return_url = 'dcim:inventoryitem_list'
|
||||||
|
|
||||||
|
|
||||||
class InventoryItemBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class InventoryItemBulkEditView(BulkEditView):
|
||||||
permission_required = 'dcim.change_inventoryitem'
|
|
||||||
queryset = InventoryItem.objects.prefetch_related('device', 'manufacturer')
|
queryset = InventoryItem.objects.prefetch_related('device', 'manufacturer')
|
||||||
filterset = filters.InventoryItemFilterSet
|
filterset = filters.InventoryItemFilterSet
|
||||||
table = tables.InventoryItemTable
|
table = tables.InventoryItemTable
|
||||||
@ -2482,8 +2460,7 @@ class VirtualChassisRemoveMemberView(PermissionRequiredMixin, GetReturnURLMixin,
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
class VirtualChassisBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class VirtualChassisBulkEditView(BulkEditView):
|
||||||
permission_required = 'dcim.change_virtualchassis'
|
|
||||||
queryset = VirtualChassis.objects.all()
|
queryset = VirtualChassis.objects.all()
|
||||||
filterset = filters.VirtualChassisFilterSet
|
filterset = filters.VirtualChassisFilterSet
|
||||||
table = tables.VirtualChassisTable
|
table = tables.VirtualChassisTable
|
||||||
@ -2550,8 +2527,7 @@ class PowerPanelBulkImportView(BulkImportView):
|
|||||||
default_return_url = 'dcim:powerpanel_list'
|
default_return_url = 'dcim:powerpanel_list'
|
||||||
|
|
||||||
|
|
||||||
class PowerPanelBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class PowerPanelBulkEditView(BulkEditView):
|
||||||
permission_required = 'dcim.change_powerpanel'
|
|
||||||
queryset = PowerPanel.objects.prefetch_related('site', 'rack_group')
|
queryset = PowerPanel.objects.prefetch_related('site', 'rack_group')
|
||||||
filterset = filters.PowerPanelFilterSet
|
filterset = filters.PowerPanelFilterSet
|
||||||
table = tables.PowerPanelTable
|
table = tables.PowerPanelTable
|
||||||
@ -2615,8 +2591,7 @@ class PowerFeedBulkImportView(BulkImportView):
|
|||||||
default_return_url = 'dcim:powerfeed_list'
|
default_return_url = 'dcim:powerfeed_list'
|
||||||
|
|
||||||
|
|
||||||
class PowerFeedBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class PowerFeedBulkEditView(BulkEditView):
|
||||||
permission_required = 'dcim.change_powerfeed'
|
|
||||||
queryset = PowerFeed.objects.prefetch_related('power_panel', 'rack')
|
queryset = PowerFeed.objects.prefetch_related('power_panel', 'rack')
|
||||||
filterset = filters.PowerFeedFilterSet
|
filterset = filters.PowerFeedFilterSet
|
||||||
table = tables.PowerFeedTable
|
table = tables.PowerFeedTable
|
||||||
|
@ -76,8 +76,7 @@ class TagDeleteView(ObjectDeleteView):
|
|||||||
default_return_url = 'extras:tag_list'
|
default_return_url = 'extras:tag_list'
|
||||||
|
|
||||||
|
|
||||||
class TagBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class TagBulkEditView(BulkEditView):
|
||||||
permission_required = 'extras.change_tag'
|
|
||||||
queryset = Tag.objects.annotate(
|
queryset = Tag.objects.annotate(
|
||||||
items=Count('extras_taggeditem_items', distinct=True)
|
items=Count('extras_taggeditem_items', distinct=True)
|
||||||
).order_by(
|
).order_by(
|
||||||
@ -137,8 +136,7 @@ class ConfigContextEditView(ObjectEditView):
|
|||||||
template_name = 'extras/configcontext_edit.html'
|
template_name = 'extras/configcontext_edit.html'
|
||||||
|
|
||||||
|
|
||||||
class ConfigContextBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class ConfigContextBulkEditView(BulkEditView):
|
||||||
permission_required = 'extras.change_configcontext'
|
|
||||||
queryset = ConfigContext.objects.all()
|
queryset = ConfigContext.objects.all()
|
||||||
filterset = filters.ConfigContextFilterSet
|
filterset = filters.ConfigContextFilterSet
|
||||||
table = ConfigContextTable
|
table = ConfigContextTable
|
||||||
|
@ -153,8 +153,7 @@ class VRFBulkImportView(BulkImportView):
|
|||||||
default_return_url = 'ipam:vrf_list'
|
default_return_url = 'ipam:vrf_list'
|
||||||
|
|
||||||
|
|
||||||
class VRFBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class VRFBulkEditView(BulkEditView):
|
||||||
permission_required = 'ipam.change_vrf'
|
|
||||||
queryset = VRF.objects.prefetch_related('tenant')
|
queryset = VRF.objects.prefetch_related('tenant')
|
||||||
filterset = filters.VRFFilterSet
|
filterset = filters.VRFFilterSet
|
||||||
table = tables.VRFTable
|
table = tables.VRFTable
|
||||||
@ -365,8 +364,7 @@ class AggregateBulkImportView(BulkImportView):
|
|||||||
default_return_url = 'ipam:aggregate_list'
|
default_return_url = 'ipam:aggregate_list'
|
||||||
|
|
||||||
|
|
||||||
class AggregateBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class AggregateBulkEditView(BulkEditView):
|
||||||
permission_required = 'ipam.change_aggregate'
|
|
||||||
queryset = Aggregate.objects.prefetch_related('rir')
|
queryset = Aggregate.objects.prefetch_related('rir')
|
||||||
filterset = filters.AggregateFilterSet
|
filterset = filters.AggregateFilterSet
|
||||||
table = tables.AggregateTable
|
table = tables.AggregateTable
|
||||||
@ -579,8 +577,7 @@ class PrefixBulkImportView(BulkImportView):
|
|||||||
default_return_url = 'ipam:prefix_list'
|
default_return_url = 'ipam:prefix_list'
|
||||||
|
|
||||||
|
|
||||||
class PrefixBulkEditView(ObjectPermissionRequiredMixin, BulkEditView):
|
class PrefixBulkEditView(BulkEditView):
|
||||||
permission_required = 'ipam.change_prefix'
|
|
||||||
queryset = Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role')
|
queryset = Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role')
|
||||||
filterset = filters.PrefixFilterSet
|
filterset = filters.PrefixFilterSet
|
||||||
table = tables.PrefixTable
|
table = tables.PrefixTable
|
||||||
@ -746,8 +743,7 @@ class IPAddressBulkImportView(BulkImportView):
|
|||||||
default_return_url = 'ipam:ipaddress_list'
|
default_return_url = 'ipam:ipaddress_list'
|
||||||
|
|
||||||
|
|
||||||
class IPAddressBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class IPAddressBulkEditView(BulkEditView):
|
||||||
permission_required = 'ipam.change_ipaddress'
|
|
||||||
queryset = IPAddress.objects.prefetch_related('vrf__tenant', 'tenant').prefetch_related('interface__device')
|
queryset = IPAddress.objects.prefetch_related('vrf__tenant', 'tenant').prefetch_related('interface__device')
|
||||||
filterset = filters.IPAddressFilterSet
|
filterset = filters.IPAddressFilterSet
|
||||||
table = tables.IPAddressTable
|
table = tables.IPAddressTable
|
||||||
@ -904,8 +900,7 @@ class VLANBulkImportView(BulkImportView):
|
|||||||
default_return_url = 'ipam:vlan_list'
|
default_return_url = 'ipam:vlan_list'
|
||||||
|
|
||||||
|
|
||||||
class VLANBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class VLANBulkEditView(BulkEditView):
|
||||||
permission_required = 'ipam.change_vlan'
|
|
||||||
queryset = VLAN.objects.prefetch_related('site', 'group', 'tenant', 'role')
|
queryset = VLAN.objects.prefetch_related('site', 'group', 'tenant', 'role')
|
||||||
filterset = filters.VLANFilterSet
|
filterset = filters.VLANFilterSet
|
||||||
table = tables.VLANTable
|
table = tables.VLANTable
|
||||||
@ -972,8 +967,7 @@ class ServiceDeleteView(ObjectDeleteView):
|
|||||||
queryset = Service.objects.all()
|
queryset = Service.objects.all()
|
||||||
|
|
||||||
|
|
||||||
class ServiceBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class ServiceBulkEditView(BulkEditView):
|
||||||
permission_required = 'ipam.change_service'
|
|
||||||
queryset = Service.objects.prefetch_related('device', 'virtual_machine')
|
queryset = Service.objects.prefetch_related('device', 'virtual_machine')
|
||||||
filterset = filters.ServiceFilterSet
|
filterset = filters.ServiceFilterSet
|
||||||
table = tables.ServiceTable
|
table = tables.ServiceTable
|
||||||
|
@ -463,7 +463,7 @@ class ObjectPermissionViewTestCase(TestCase):
|
|||||||
'data': form_data,
|
'data': form_data,
|
||||||
}
|
}
|
||||||
response = self.client.post(**request)
|
response = self.client.post(**request)
|
||||||
self.assertHttpStatus(response, 200)
|
self.assertHttpStatus(response, 302)
|
||||||
self.assertEqual(Prefix.objects.get(pk=self.prefixes[3].pk).status, 'active')
|
self.assertEqual(Prefix.objects.get(pk=self.prefixes[3].pk).status, 'active')
|
||||||
|
|
||||||
# Edit permitted objects
|
# Edit permitted objects
|
||||||
|
@ -235,8 +235,7 @@ class SecretBulkImportView(BulkImportView):
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
class SecretBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class SecretBulkEditView(BulkEditView):
|
||||||
permission_required = 'secrets.change_secret'
|
|
||||||
queryset = Secret.objects.prefetch_related('role', 'device')
|
queryset = Secret.objects.prefetch_related('role', 'device')
|
||||||
filterset = filters.SecretFilterSet
|
filterset = filters.SecretFilterSet
|
||||||
table = tables.SecretTable
|
table = tables.SecretTable
|
||||||
|
@ -105,8 +105,7 @@ class TenantBulkImportView(BulkImportView):
|
|||||||
default_return_url = 'tenancy:tenant_list'
|
default_return_url = 'tenancy:tenant_list'
|
||||||
|
|
||||||
|
|
||||||
class TenantBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class TenantBulkEditView(BulkEditView):
|
||||||
permission_required = 'tenancy.change_tenant'
|
|
||||||
queryset = Tenant.objects.prefetch_related('group')
|
queryset = Tenant.objects.prefetch_related('group')
|
||||||
filterset = filters.TenantFilterSet
|
filterset = filters.TenantFilterSet
|
||||||
table = tables.TenantTable
|
table = tables.TenantTable
|
||||||
|
@ -755,7 +755,7 @@ class BulkImportView(GetReturnURLMixin, ObjectPermissionRequiredMixin, View):
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
class BulkEditView(GetReturnURLMixin, View):
|
class BulkEditView(GetReturnURLMixin, ObjectPermissionRequiredMixin, View):
|
||||||
"""
|
"""
|
||||||
Edit objects in bulk.
|
Edit objects in bulk.
|
||||||
|
|
||||||
@ -771,6 +771,9 @@ class BulkEditView(GetReturnURLMixin, View):
|
|||||||
form = None
|
form = None
|
||||||
template_name = 'utilities/obj_bulk_edit.html'
|
template_name = 'utilities/obj_bulk_edit.html'
|
||||||
|
|
||||||
|
def get_required_permission(self):
|
||||||
|
return get_permission_for_model(self.queryset.model, 'change')
|
||||||
|
|
||||||
def get(self, request):
|
def get(self, request):
|
||||||
return redirect(self.get_return_url(request))
|
return redirect(self.get_return_url(request))
|
||||||
|
|
||||||
@ -781,7 +784,7 @@ class BulkEditView(GetReturnURLMixin, View):
|
|||||||
# If we are editing *all* objects in the queryset, replace the PK list with all matched objects.
|
# If we are editing *all* objects in the queryset, replace the PK list with all matched objects.
|
||||||
if request.POST.get('_all') and self.filterset is not None:
|
if request.POST.get('_all') and self.filterset is not None:
|
||||||
pk_list = [
|
pk_list = [
|
||||||
obj.pk for obj in self.filterset(request.GET, model.objects.only('pk')).qs
|
obj.pk for obj in self.filterset(request.GET, self.queryset.only('pk')).qs
|
||||||
]
|
]
|
||||||
else:
|
else:
|
||||||
pk_list = request.POST.getlist('pk')
|
pk_list = request.POST.getlist('pk')
|
||||||
@ -802,7 +805,7 @@ class BulkEditView(GetReturnURLMixin, View):
|
|||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
|
|
||||||
updated_objects = []
|
updated_objects = []
|
||||||
for obj in model.objects.filter(pk__in=form.cleaned_data['pk']):
|
for obj in self.queryset.filter(pk__in=form.cleaned_data['pk']):
|
||||||
|
|
||||||
# Update standard fields. If a field is listed in _nullify, delete its value.
|
# Update standard fields. If a field is listed in _nullify, delete its value.
|
||||||
for name in standard_fields:
|
for name in standard_fields:
|
||||||
|
@ -124,8 +124,7 @@ class ClusterBulkImportView(BulkImportView):
|
|||||||
default_return_url = 'virtualization:cluster_list'
|
default_return_url = 'virtualization:cluster_list'
|
||||||
|
|
||||||
|
|
||||||
class ClusterBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class ClusterBulkEditView(BulkEditView):
|
||||||
permission_required = 'virtualization.change_cluster'
|
|
||||||
queryset = Cluster.objects.prefetch_related('type', 'group', 'site')
|
queryset = Cluster.objects.prefetch_related('type', 'group', 'site')
|
||||||
filterset = filters.ClusterFilterSet
|
filterset = filters.ClusterFilterSet
|
||||||
table = tables.ClusterTable
|
table = tables.ClusterTable
|
||||||
@ -278,8 +277,7 @@ class VirtualMachineBulkImportView(BulkImportView):
|
|||||||
default_return_url = 'virtualization:virtualmachine_list'
|
default_return_url = 'virtualization:virtualmachine_list'
|
||||||
|
|
||||||
|
|
||||||
class VirtualMachineBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class VirtualMachineBulkEditView(BulkEditView):
|
||||||
permission_required = 'virtualization.change_virtualmachine'
|
|
||||||
queryset = VirtualMachine.objects.prefetch_related('cluster', 'tenant', 'role')
|
queryset = VirtualMachine.objects.prefetch_related('cluster', 'tenant', 'role')
|
||||||
filterset = filters.VirtualMachineFilterSet
|
filterset = filters.VirtualMachineFilterSet
|
||||||
table = tables.VirtualMachineTable
|
table = tables.VirtualMachineTable
|
||||||
@ -317,8 +315,7 @@ class InterfaceDeleteView(ObjectDeleteView):
|
|||||||
queryset = Interface.objects.all()
|
queryset = Interface.objects.all()
|
||||||
|
|
||||||
|
|
||||||
class InterfaceBulkEditView(PermissionRequiredMixin, BulkEditView):
|
class InterfaceBulkEditView(BulkEditView):
|
||||||
permission_required = 'dcim.change_interface'
|
|
||||||
queryset = Interface.objects.all()
|
queryset = Interface.objects.all()
|
||||||
table = tables.InterfaceTable
|
table = tables.InterfaceTable
|
||||||
form = forms.InterfaceBulkEditForm
|
form = forms.InterfaceBulkEditForm
|
||||||
|
Loading…
Reference in New Issue
Block a user