mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-22 20:12:00 -06:00
Transition BulkDeleteView to use ObjectPermissionRequiredMixin
This commit is contained in:
parent
82c247f3cf
commit
8fd860a413
@ -86,8 +86,7 @@ class ProviderBulkEditView(BulkEditView):
|
||||
default_return_url = 'circuits:provider_list'
|
||||
|
||||
|
||||
class ProviderBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'circuits.delete_provider'
|
||||
class ProviderBulkDeleteView(BulkDeleteView):
|
||||
queryset = Provider.objects.annotate(count_circuits=Count('circuits'))
|
||||
filterset = filters.ProviderFilterSet
|
||||
table = tables.ProviderTable
|
||||
@ -116,8 +115,7 @@ class CircuitTypeBulkImportView(BulkImportView):
|
||||
default_return_url = 'circuits:circuittype_list'
|
||||
|
||||
|
||||
class CircuitTypeBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'circuits.delete_circuittype'
|
||||
class CircuitTypeBulkDeleteView(BulkDeleteView):
|
||||
queryset = CircuitType.objects.annotate(circuit_count=Count('circuits'))
|
||||
table = tables.CircuitTypeTable
|
||||
default_return_url = 'circuits:circuittype_list'
|
||||
@ -188,8 +186,7 @@ class CircuitBulkEditView(BulkEditView):
|
||||
default_return_url = 'circuits:circuit_list'
|
||||
|
||||
|
||||
class CircuitBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'circuits.delete_circuit'
|
||||
class CircuitBulkDeleteView(BulkDeleteView):
|
||||
queryset = Circuit.objects.prefetch_related('provider', 'type', 'tenant').prefetch_related('terminations__site')
|
||||
filterset = filters.CircuitFilterSet
|
||||
table = tables.CircuitTable
|
||||
|
@ -167,8 +167,7 @@ class RegionBulkImportView(BulkImportView):
|
||||
default_return_url = 'dcim:region_list'
|
||||
|
||||
|
||||
class RegionBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_region'
|
||||
class RegionBulkDeleteView(BulkDeleteView):
|
||||
queryset = Region.objects.all()
|
||||
filterset = filters.RegionFilterSet
|
||||
table = tables.RegionTable
|
||||
@ -239,8 +238,7 @@ class SiteBulkEditView(BulkEditView):
|
||||
default_return_url = 'dcim:site_list'
|
||||
|
||||
|
||||
class SiteBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_site'
|
||||
class SiteBulkDeleteView(BulkDeleteView):
|
||||
queryset = Site.objects.prefetch_related('region', 'tenant')
|
||||
filterset = filters.SiteFilterSet
|
||||
table = tables.SiteTable
|
||||
@ -277,8 +275,7 @@ class RackGroupBulkImportView(BulkImportView):
|
||||
default_return_url = 'dcim:rackgroup_list'
|
||||
|
||||
|
||||
class RackGroupBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_rackgroup'
|
||||
class RackGroupBulkDeleteView(BulkDeleteView):
|
||||
queryset = RackGroup.objects.prefetch_related('site').annotate(rack_count=Count('racks'))
|
||||
filterset = filters.RackGroupFilterSet
|
||||
table = tables.RackGroupTable
|
||||
@ -307,8 +304,7 @@ class RackRoleBulkImportView(BulkImportView):
|
||||
default_return_url = 'dcim:rackrole_list'
|
||||
|
||||
|
||||
class RackRoleBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_rackrole'
|
||||
class RackRoleBulkDeleteView(BulkDeleteView):
|
||||
queryset = RackRole.objects.annotate(rack_count=Count('racks'))
|
||||
table = tables.RackRoleTable
|
||||
default_return_url = 'dcim:rackrole_list'
|
||||
@ -425,8 +421,7 @@ class RackBulkEditView(BulkEditView):
|
||||
default_return_url = 'dcim:rack_list'
|
||||
|
||||
|
||||
class RackBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_rack'
|
||||
class RackBulkDeleteView(BulkDeleteView):
|
||||
queryset = Rack.objects.prefetch_related('site', 'group', 'tenant', 'role')
|
||||
filterset = filters.RackFilterSet
|
||||
table = tables.RackTable
|
||||
@ -501,8 +496,7 @@ class RackReservationBulkEditView(BulkEditView):
|
||||
default_return_url = 'dcim:rackreservation_list'
|
||||
|
||||
|
||||
class RackReservationBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_rackreservation'
|
||||
class RackReservationBulkDeleteView(BulkDeleteView):
|
||||
queryset = RackReservation.objects.prefetch_related('rack', 'user')
|
||||
filterset = filters.RackReservationFilterSet
|
||||
table = tables.RackReservationTable
|
||||
@ -535,8 +529,7 @@ class ManufacturerBulkImportView(BulkImportView):
|
||||
default_return_url = 'dcim:manufacturer_list'
|
||||
|
||||
|
||||
class ManufacturerBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_manufacturer'
|
||||
class ManufacturerBulkDeleteView(BulkDeleteView):
|
||||
queryset = Manufacturer.objects.annotate(devicetype_count=Count('device_types'))
|
||||
table = tables.ManufacturerTable
|
||||
default_return_url = 'dcim:manufacturer_list'
|
||||
@ -663,8 +656,7 @@ class DeviceTypeBulkEditView(BulkEditView):
|
||||
default_return_url = 'dcim:devicetype_list'
|
||||
|
||||
|
||||
class DeviceTypeBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_devicetype'
|
||||
class DeviceTypeBulkDeleteView(BulkDeleteView):
|
||||
queryset = DeviceType.objects.prefetch_related('manufacturer').annotate(instance_count=Count('instances'))
|
||||
filterset = filters.DeviceTypeFilterSet
|
||||
table = tables.DeviceTypeTable
|
||||
@ -698,8 +690,7 @@ class ConsolePortTemplateBulkEditView(BulkEditView):
|
||||
form = forms.ConsolePortTemplateBulkEditForm
|
||||
|
||||
|
||||
class ConsolePortTemplateBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_consoleporttemplate'
|
||||
class ConsolePortTemplateBulkDeleteView(BulkDeleteView):
|
||||
queryset = ConsolePortTemplate.objects.all()
|
||||
table = tables.ConsolePortTemplateTable
|
||||
|
||||
@ -731,8 +722,7 @@ class ConsoleServerPortTemplateBulkEditView(BulkEditView):
|
||||
form = forms.ConsoleServerPortTemplateBulkEditForm
|
||||
|
||||
|
||||
class ConsoleServerPortTemplateBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_consoleserverporttemplate'
|
||||
class ConsoleServerPortTemplateBulkDeleteView(BulkDeleteView):
|
||||
queryset = ConsoleServerPortTemplate.objects.all()
|
||||
table = tables.ConsoleServerPortTemplateTable
|
||||
|
||||
@ -764,8 +754,7 @@ class PowerPortTemplateBulkEditView(BulkEditView):
|
||||
form = forms.PowerPortTemplateBulkEditForm
|
||||
|
||||
|
||||
class PowerPortTemplateBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_powerporttemplate'
|
||||
class PowerPortTemplateBulkDeleteView(BulkDeleteView):
|
||||
queryset = PowerPortTemplate.objects.all()
|
||||
table = tables.PowerPortTemplateTable
|
||||
|
||||
@ -797,8 +786,7 @@ class PowerOutletTemplateBulkEditView(BulkEditView):
|
||||
form = forms.PowerOutletTemplateBulkEditForm
|
||||
|
||||
|
||||
class PowerOutletTemplateBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_poweroutlettemplate'
|
||||
class PowerOutletTemplateBulkDeleteView(BulkDeleteView):
|
||||
queryset = PowerOutletTemplate.objects.all()
|
||||
table = tables.PowerOutletTemplateTable
|
||||
|
||||
@ -830,8 +818,7 @@ class InterfaceTemplateBulkEditView(BulkEditView):
|
||||
form = forms.InterfaceTemplateBulkEditForm
|
||||
|
||||
|
||||
class InterfaceTemplateBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_interfacetemplate'
|
||||
class InterfaceTemplateBulkDeleteView(BulkDeleteView):
|
||||
queryset = InterfaceTemplate.objects.all()
|
||||
table = tables.InterfaceTemplateTable
|
||||
|
||||
@ -863,8 +850,7 @@ class FrontPortTemplateBulkEditView(BulkEditView):
|
||||
form = forms.FrontPortTemplateBulkEditForm
|
||||
|
||||
|
||||
class FrontPortTemplateBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_frontporttemplate'
|
||||
class FrontPortTemplateBulkDeleteView(BulkDeleteView):
|
||||
queryset = FrontPortTemplate.objects.all()
|
||||
table = tables.FrontPortTemplateTable
|
||||
|
||||
@ -896,8 +882,7 @@ class RearPortTemplateBulkEditView(BulkEditView):
|
||||
form = forms.RearPortTemplateBulkEditForm
|
||||
|
||||
|
||||
class RearPortTemplateBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_rearporttemplate'
|
||||
class RearPortTemplateBulkDeleteView(BulkDeleteView):
|
||||
queryset = RearPortTemplate.objects.all()
|
||||
table = tables.RearPortTemplateTable
|
||||
|
||||
@ -930,8 +915,7 @@ class DeviceBayTemplateDeleteView(ObjectDeleteView):
|
||||
# form = forms.DeviceBayTemplateBulkEditForm
|
||||
|
||||
|
||||
class DeviceBayTemplateBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_devicebaytemplate'
|
||||
class DeviceBayTemplateBulkDeleteView(BulkDeleteView):
|
||||
queryset = DeviceBayTemplate.objects.all()
|
||||
table = tables.DeviceBayTemplateTable
|
||||
|
||||
@ -958,8 +942,7 @@ class DeviceRoleBulkImportView(BulkImportView):
|
||||
default_return_url = 'dcim:devicerole_list'
|
||||
|
||||
|
||||
class DeviceRoleBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_devicerole'
|
||||
class DeviceRoleBulkDeleteView(BulkDeleteView):
|
||||
queryset = DeviceRole.objects.all()
|
||||
table = tables.DeviceRoleTable
|
||||
default_return_url = 'dcim:devicerole_list'
|
||||
@ -987,8 +970,7 @@ class PlatformBulkImportView(BulkImportView):
|
||||
default_return_url = 'dcim:platform_list'
|
||||
|
||||
|
||||
class PlatformBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_platform'
|
||||
class PlatformBulkDeleteView(BulkDeleteView):
|
||||
queryset = Platform.objects.all()
|
||||
table = tables.PlatformTable
|
||||
default_return_url = 'dcim:platform_list'
|
||||
@ -1201,8 +1183,7 @@ class DeviceBulkEditView(BulkEditView):
|
||||
default_return_url = 'dcim:device_list'
|
||||
|
||||
|
||||
class DeviceBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_device'
|
||||
class DeviceBulkDeleteView(BulkDeleteView):
|
||||
queryset = Device.objects.prefetch_related('tenant', 'site', 'rack', 'device_role', 'device_type__manufacturer')
|
||||
filterset = filters.DeviceFilterSet
|
||||
table = tables.DeviceTable
|
||||
@ -1252,8 +1233,7 @@ class ConsolePortBulkEditView(BulkEditView):
|
||||
form = forms.ConsolePortBulkEditForm
|
||||
|
||||
|
||||
class ConsolePortBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_consoleport'
|
||||
class ConsolePortBulkDeleteView(BulkDeleteView):
|
||||
queryset = ConsolePort.objects.all()
|
||||
filterset = filters.ConsolePortFilterSet
|
||||
table = tables.ConsolePortTable
|
||||
@ -1315,8 +1295,7 @@ class ConsoleServerPortBulkDisconnectView(PermissionRequiredMixin, BulkDisconnec
|
||||
form = forms.ConsoleServerPortBulkDisconnectForm
|
||||
|
||||
|
||||
class ConsoleServerPortBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_consoleserverport'
|
||||
class ConsoleServerPortBulkDeleteView(BulkDeleteView):
|
||||
queryset = ConsoleServerPort.objects.all()
|
||||
filterset = filters.ConsoleServerPortFilterSet
|
||||
table = tables.ConsoleServerPortTable
|
||||
@ -1366,8 +1345,7 @@ class PowerPortBulkEditView(BulkEditView):
|
||||
form = forms.PowerPortBulkEditForm
|
||||
|
||||
|
||||
class PowerPortBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_powerport'
|
||||
class PowerPortBulkDeleteView(BulkDeleteView):
|
||||
queryset = PowerPort.objects.all()
|
||||
filterset = filters.PowerPortFilterSet
|
||||
table = tables.PowerPortTable
|
||||
@ -1429,8 +1407,7 @@ class PowerOutletBulkDisconnectView(PermissionRequiredMixin, BulkDisconnectView)
|
||||
form = forms.PowerOutletBulkDisconnectForm
|
||||
|
||||
|
||||
class PowerOutletBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_poweroutlet'
|
||||
class PowerOutletBulkDeleteView(BulkDeleteView):
|
||||
queryset = PowerOutlet.objects.all()
|
||||
filterset = filters.PowerOutletFilterSet
|
||||
table = tables.PowerOutletTable
|
||||
@ -1529,8 +1506,7 @@ class InterfaceBulkDisconnectView(PermissionRequiredMixin, BulkDisconnectView):
|
||||
form = forms.InterfaceBulkDisconnectForm
|
||||
|
||||
|
||||
class InterfaceBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_interface'
|
||||
class InterfaceBulkDeleteView(BulkDeleteView):
|
||||
queryset = Interface.objects.all()
|
||||
filterset = filters.InterfaceFilterSet
|
||||
table = tables.InterfaceTable
|
||||
@ -1592,8 +1568,7 @@ class FrontPortBulkDisconnectView(PermissionRequiredMixin, BulkDisconnectView):
|
||||
form = forms.FrontPortBulkDisconnectForm
|
||||
|
||||
|
||||
class FrontPortBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_frontport'
|
||||
class FrontPortBulkDeleteView(BulkDeleteView):
|
||||
queryset = FrontPort.objects.all()
|
||||
filterset = filters.FrontPortFilterSet
|
||||
table = tables.FrontPortTable
|
||||
@ -1655,8 +1630,7 @@ class RearPortBulkDisconnectView(PermissionRequiredMixin, BulkDisconnectView):
|
||||
form = forms.RearPortBulkDisconnectForm
|
||||
|
||||
|
||||
class RearPortBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_rearport'
|
||||
class RearPortBulkDeleteView(BulkDeleteView):
|
||||
queryset = RearPort.objects.all()
|
||||
filterset = filters.RearPortFilterSet
|
||||
table = tables.RearPortTable
|
||||
@ -1783,8 +1757,7 @@ class DeviceBayBulkRenameView(PermissionRequiredMixin, BulkRenameView):
|
||||
form = forms.DeviceBayBulkRenameForm
|
||||
|
||||
|
||||
class DeviceBayBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_devicebay'
|
||||
class DeviceBayBulkDeleteView(BulkDeleteView):
|
||||
queryset = DeviceBay.objects.all()
|
||||
filterset = filters.DeviceBayFilterSet
|
||||
table = tables.DeviceBayTable
|
||||
@ -2048,8 +2021,7 @@ class CableBulkEditView(BulkEditView):
|
||||
default_return_url = 'dcim:cable_list'
|
||||
|
||||
|
||||
class CableBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_cable'
|
||||
class CableBulkDeleteView(BulkDeleteView):
|
||||
queryset = Cable.objects.prefetch_related('termination_a', 'termination_b')
|
||||
filterset = filters.CableFilterSet
|
||||
table = tables.CableTable
|
||||
@ -2203,8 +2175,7 @@ class InventoryItemBulkEditView(BulkEditView):
|
||||
default_return_url = 'dcim:inventoryitem_list'
|
||||
|
||||
|
||||
class InventoryItemBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_inventoryitem'
|
||||
class InventoryItemBulkDeleteView(BulkDeleteView):
|
||||
queryset = InventoryItem.objects.prefetch_related('device', 'manufacturer')
|
||||
table = tables.InventoryItemTable
|
||||
template_name = 'dcim/inventoryitem_bulk_delete.html'
|
||||
@ -2468,8 +2439,7 @@ class VirtualChassisBulkEditView(BulkEditView):
|
||||
default_return_url = 'dcim:virtualchassis_list'
|
||||
|
||||
|
||||
class VirtualChassisBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_virtualchassis'
|
||||
class VirtualChassisBulkDeleteView(BulkDeleteView):
|
||||
queryset = VirtualChassis.objects.all()
|
||||
filterset = filters.VirtualChassisFilterSet
|
||||
table = tables.VirtualChassisTable
|
||||
@ -2535,8 +2505,7 @@ class PowerPanelBulkEditView(BulkEditView):
|
||||
default_return_url = 'dcim:powerpanel_list'
|
||||
|
||||
|
||||
class PowerPanelBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_powerpanel'
|
||||
class PowerPanelBulkDeleteView(BulkDeleteView):
|
||||
queryset = PowerPanel.objects.prefetch_related(
|
||||
'site', 'rack_group'
|
||||
).annotate(
|
||||
@ -2599,8 +2568,7 @@ class PowerFeedBulkEditView(BulkEditView):
|
||||
default_return_url = 'dcim:powerfeed_list'
|
||||
|
||||
|
||||
class PowerFeedBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_powerfeed'
|
||||
class PowerFeedBulkDeleteView(BulkDeleteView):
|
||||
queryset = PowerFeed.objects.prefetch_related('power_panel', 'rack')
|
||||
filterset = filters.PowerFeedFilterSet
|
||||
table = tables.PowerFeedTable
|
||||
|
@ -87,8 +87,7 @@ class TagBulkEditView(BulkEditView):
|
||||
default_return_url = 'extras:tag_list'
|
||||
|
||||
|
||||
class TagBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'extras.delete_tag'
|
||||
class TagBulkDeleteView(BulkDeleteView):
|
||||
queryset = Tag.objects.annotate(
|
||||
items=Count('extras_taggeditem_items')
|
||||
).order_by(
|
||||
@ -149,8 +148,7 @@ class ConfigContextDeleteView(ObjectDeleteView):
|
||||
default_return_url = 'extras:configcontext_list'
|
||||
|
||||
|
||||
class ConfigContextBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'extras.delete_configcontext'
|
||||
class ConfigContextBulkDeleteView(BulkDeleteView):
|
||||
queryset = ConfigContext.objects.all()
|
||||
table = ConfigContextTable
|
||||
default_return_url = 'extras:configcontext_list'
|
||||
|
@ -161,8 +161,7 @@ class VRFBulkEditView(BulkEditView):
|
||||
default_return_url = 'ipam:vrf_list'
|
||||
|
||||
|
||||
class VRFBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'ipam.delete_vrf'
|
||||
class VRFBulkDeleteView(BulkDeleteView):
|
||||
queryset = VRF.objects.prefetch_related('tenant')
|
||||
filterset = filters.VRFFilterSet
|
||||
table = tables.VRFTable
|
||||
@ -262,8 +261,7 @@ class RIRBulkImportView(BulkImportView):
|
||||
default_return_url = 'ipam:rir_list'
|
||||
|
||||
|
||||
class RIRBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'ipam.delete_rir'
|
||||
class RIRBulkDeleteView(BulkDeleteView):
|
||||
queryset = RIR.objects.annotate(aggregate_count=Count('aggregates'))
|
||||
filterset = filters.RIRFilterSet
|
||||
table = tables.RIRTable
|
||||
@ -372,8 +370,7 @@ class AggregateBulkEditView(BulkEditView):
|
||||
default_return_url = 'ipam:aggregate_list'
|
||||
|
||||
|
||||
class AggregateBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'ipam.delete_aggregate'
|
||||
class AggregateBulkDeleteView(BulkDeleteView):
|
||||
queryset = Aggregate.objects.prefetch_related('rir')
|
||||
filterset = filters.AggregateFilterSet
|
||||
table = tables.AggregateTable
|
||||
@ -402,8 +399,7 @@ class RoleBulkImportView(BulkImportView):
|
||||
default_return_url = 'ipam:role_list'
|
||||
|
||||
|
||||
class RoleBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'ipam.delete_role'
|
||||
class RoleBulkDeleteView(BulkDeleteView):
|
||||
queryset = Role.objects.all()
|
||||
table = tables.RoleTable
|
||||
default_return_url = 'ipam:role_list'
|
||||
@ -585,8 +581,7 @@ class PrefixBulkEditView(BulkEditView):
|
||||
default_return_url = 'ipam:prefix_list'
|
||||
|
||||
|
||||
class PrefixBulkDeleteView(ObjectPermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'ipam.delete_prefix'
|
||||
class PrefixBulkDeleteView(BulkDeleteView):
|
||||
queryset = Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role')
|
||||
filterset = filters.PrefixFilterSet
|
||||
table = tables.PrefixTable
|
||||
@ -751,8 +746,7 @@ class IPAddressBulkEditView(BulkEditView):
|
||||
default_return_url = 'ipam:ipaddress_list'
|
||||
|
||||
|
||||
class IPAddressBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'ipam.delete_ipaddress'
|
||||
class IPAddressBulkDeleteView(BulkDeleteView):
|
||||
queryset = IPAddress.objects.prefetch_related('vrf__tenant', 'tenant').prefetch_related('interface__device')
|
||||
filterset = filters.IPAddressFilterSet
|
||||
table = tables.IPAddressTable
|
||||
@ -784,8 +778,7 @@ class VLANGroupBulkImportView(BulkImportView):
|
||||
default_return_url = 'ipam:vlangroup_list'
|
||||
|
||||
|
||||
class VLANGroupBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'ipam.delete_vlangroup'
|
||||
class VLANGroupBulkDeleteView(BulkDeleteView):
|
||||
queryset = VLANGroup.objects.prefetch_related('site').annotate(vlan_count=Count('vlans'))
|
||||
filterset = filters.VLANGroupFilterSet
|
||||
table = tables.VLANGroupTable
|
||||
@ -908,8 +901,7 @@ class VLANBulkEditView(BulkEditView):
|
||||
default_return_url = 'ipam:vlan_list'
|
||||
|
||||
|
||||
class VLANBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'ipam.delete_vlan'
|
||||
class VLANBulkDeleteView(BulkDeleteView):
|
||||
queryset = VLAN.objects.prefetch_related('site', 'group', 'tenant', 'role')
|
||||
filterset = filters.VLANFilterSet
|
||||
table = tables.VLANTable
|
||||
@ -975,8 +967,7 @@ class ServiceBulkEditView(BulkEditView):
|
||||
default_return_url = 'ipam:service_list'
|
||||
|
||||
|
||||
class ServiceBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'ipam.delete_service'
|
||||
class ServiceBulkDeleteView(BulkDeleteView):
|
||||
queryset = Service.objects.prefetch_related('device', 'virtual_machine')
|
||||
filterset = filters.ServiceFilterSet
|
||||
table = tables.ServiceTable
|
||||
|
@ -48,8 +48,7 @@ class SecretRoleBulkImportView(BulkImportView):
|
||||
default_return_url = 'secrets:secretrole_list'
|
||||
|
||||
|
||||
class SecretRoleBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'secrets.delete_secretrole'
|
||||
class SecretRoleBulkDeleteView(BulkDeleteView):
|
||||
queryset = SecretRole.objects.annotate(secret_count=Count('secrets'))
|
||||
table = tables.SecretRoleTable
|
||||
default_return_url = 'secrets:secretrole_list'
|
||||
@ -243,8 +242,7 @@ class SecretBulkEditView(BulkEditView):
|
||||
default_return_url = 'secrets:secret_list'
|
||||
|
||||
|
||||
class SecretBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'secrets.delete_secret'
|
||||
class SecretBulkDeleteView(BulkDeleteView):
|
||||
queryset = Secret.objects.prefetch_related('role', 'device')
|
||||
filterset = filters.SecretFilterSet
|
||||
table = tables.SecretTable
|
||||
|
@ -42,8 +42,7 @@ class TenantGroupBulkImportView(BulkImportView):
|
||||
default_return_url = 'tenancy:tenantgroup_list'
|
||||
|
||||
|
||||
class TenantGroupBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'tenancy.delete_tenantgroup'
|
||||
class TenantGroupBulkDeleteView(BulkDeleteView):
|
||||
queryset = TenantGroup.objects.annotate(tenant_count=Count('tenants'))
|
||||
table = tables.TenantGroupTable
|
||||
default_return_url = 'tenancy:tenantgroup_list'
|
||||
@ -113,8 +112,7 @@ class TenantBulkEditView(BulkEditView):
|
||||
default_return_url = 'tenancy:tenant_list'
|
||||
|
||||
|
||||
class TenantBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'tenancy.delete_tenant'
|
||||
class TenantBulkDeleteView(BulkDeleteView):
|
||||
queryset = Tenant.objects.prefetch_related('group')
|
||||
filterset = filters.TenantFilterSet
|
||||
table = tables.TenantTable
|
||||
|
@ -911,7 +911,7 @@ class BulkEditView(GetReturnURLMixin, ObjectPermissionRequiredMixin, View):
|
||||
})
|
||||
|
||||
|
||||
class BulkDeleteView(GetReturnURLMixin, View):
|
||||
class BulkDeleteView(GetReturnURLMixin, ObjectPermissionRequiredMixin, View):
|
||||
"""
|
||||
Delete objects in bulk.
|
||||
|
||||
@ -927,6 +927,9 @@ class BulkDeleteView(GetReturnURLMixin, View):
|
||||
form = None
|
||||
template_name = 'utilities/obj_bulk_delete.html'
|
||||
|
||||
def get_required_permission(self):
|
||||
return get_permission_for_model(self.queryset.model, 'delete')
|
||||
|
||||
def get(self, request):
|
||||
return redirect(self.get_return_url(request))
|
||||
|
||||
|
@ -40,8 +40,7 @@ class ClusterTypeBulkImportView(BulkImportView):
|
||||
default_return_url = 'virtualization:clustertype_list'
|
||||
|
||||
|
||||
class ClusterTypeBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'virtualization.delete_clustertype'
|
||||
class ClusterTypeBulkDeleteView(BulkDeleteView):
|
||||
queryset = ClusterType.objects.annotate(cluster_count=Count('clusters'))
|
||||
table = tables.ClusterTypeTable
|
||||
default_return_url = 'virtualization:clustertype_list'
|
||||
@ -69,8 +68,7 @@ class ClusterGroupBulkImportView(BulkImportView):
|
||||
default_return_url = 'virtualization:clustergroup_list'
|
||||
|
||||
|
||||
class ClusterGroupBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'virtualization.delete_clustergroup'
|
||||
class ClusterGroupBulkDeleteView(BulkDeleteView):
|
||||
queryset = ClusterGroup.objects.annotate(cluster_count=Count('clusters'))
|
||||
table = tables.ClusterGroupTable
|
||||
default_return_url = 'virtualization:clustergroup_list'
|
||||
@ -132,8 +130,7 @@ class ClusterBulkEditView(BulkEditView):
|
||||
default_return_url = 'virtualization:cluster_list'
|
||||
|
||||
|
||||
class ClusterBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'virtualization.delete_cluster'
|
||||
class ClusterBulkDeleteView(BulkDeleteView):
|
||||
queryset = Cluster.objects.prefetch_related('type', 'group', 'site')
|
||||
filterset = filters.ClusterFilterSet
|
||||
table = tables.ClusterTable
|
||||
@ -285,8 +282,7 @@ class VirtualMachineBulkEditView(BulkEditView):
|
||||
default_return_url = 'virtualization:virtualmachine_list'
|
||||
|
||||
|
||||
class VirtualMachineBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'virtualization.delete_virtualmachine'
|
||||
class VirtualMachineBulkDeleteView(BulkDeleteView):
|
||||
queryset = VirtualMachine.objects.prefetch_related('cluster', 'tenant', 'role')
|
||||
filterset = filters.VirtualMachineFilterSet
|
||||
table = tables.VirtualMachineTable
|
||||
@ -321,8 +317,7 @@ class InterfaceBulkEditView(BulkEditView):
|
||||
form = forms.InterfaceBulkEditForm
|
||||
|
||||
|
||||
class InterfaceBulkDeleteView(PermissionRequiredMixin, BulkDeleteView):
|
||||
permission_required = 'dcim.delete_interface'
|
||||
class InterfaceBulkDeleteView(BulkDeleteView):
|
||||
queryset = Interface.objects.all()
|
||||
table = tables.InterfaceTable
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user