Transition BulkImportView to use ObjectPermissionRequiredMixin

This commit is contained in:
Jeremy Stretch 2020-05-21 14:43:27 -04:00
parent 2b32430a10
commit 5e5038d780
7 changed files with 46 additions and 86 deletions

View File

@ -71,8 +71,7 @@ class ProviderDeleteView(ObjectDeleteView):
default_return_url = 'circuits:provider_list'
class ProviderBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'circuits.add_provider'
class ProviderBulkImportView(BulkImportView):
queryset = Provider.objects.all()
model_form = forms.ProviderCSVForm
table = tables.ProviderTable
@ -111,8 +110,7 @@ class CircuitTypeEditView(ObjectEditView):
default_return_url = 'circuits:circuittype_list'
class CircuitTypeBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'circuits.add_circuittype'
class CircuitTypeBulkImportView(BulkImportView):
queryset = CircuitType.objects.all()
model_form = forms.CircuitTypeCSVForm
table = tables.CircuitTypeTable
@ -176,8 +174,7 @@ class CircuitDeleteView(ObjectDeleteView):
default_return_url = 'circuits:circuit_list'
class CircuitBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'circuits.add_circuit'
class CircuitBulkImportView(BulkImportView):
queryset = Circuit.objects.all()
model_form = forms.CircuitCSVForm
table = tables.CircuitTable

View File

@ -160,8 +160,7 @@ class RegionEditView(ObjectEditView):
default_return_url = 'dcim:region_list'
class RegionBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'dcim.add_region'
class RegionBulkImportView(BulkImportView):
queryset = Region.objects.all()
model_form = forms.RegionCSVForm
table = tables.RegionTable
@ -225,8 +224,7 @@ class SiteDeleteView(ObjectDeleteView):
default_return_url = 'dcim:site_list'
class SiteBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'dcim.add_site'
class SiteBulkImportView(BulkImportView):
queryset = Site.objects.all()
model_form = forms.SiteCSVForm
table = tables.SiteTable
@ -273,8 +271,7 @@ class RackGroupEditView(ObjectEditView):
default_return_url = 'dcim:rackgroup_list'
class RackGroupBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'dcim.add_rackgroup'
class RackGroupBulkImportView(BulkImportView):
queryset = RackGroup.objects.all()
model_form = forms.RackGroupCSVForm
table = tables.RackGroupTable
@ -304,8 +301,7 @@ class RackRoleEditView(ObjectEditView):
default_return_url = 'dcim:rackrole_list'
class RackRoleBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'dcim.add_rackrole'
class RackRoleBulkImportView(BulkImportView):
queryset = RackRole.objects.all()
model_form = forms.RackRoleCSVForm
table = tables.RackRoleTable
@ -415,8 +411,7 @@ class RackDeleteView(ObjectDeleteView):
default_return_url = 'dcim:rack_list'
class RackBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'dcim.add_rack'
class RackBulkImportView(BulkImportView):
queryset = Rack.objects.all()
model_form = forms.RackCSVForm
table = tables.RackTable
@ -483,8 +478,7 @@ class RackReservationDeleteView(ObjectDeleteView):
default_return_url = 'dcim:rackreservation_list'
class RackReservationImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'dcim.add_rackreservation'
class RackReservationImportView(BulkImportView):
queryset = RackReservation.objects.all()
model_form = forms.RackReservationCSVForm
table = tables.RackReservationTable
@ -537,8 +531,7 @@ class ManufacturerEditView(ObjectEditView):
default_return_url = 'dcim:manufacturer_list'
class ManufacturerBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'dcim.add_manufacturer'
class ManufacturerBulkImportView(BulkImportView):
queryset = Manufacturer.objects.all()
model_form = forms.ManufacturerCSVForm
table = tables.ManufacturerTable
@ -969,8 +962,7 @@ class DeviceRoleEditView(ObjectEditView):
default_return_url = 'dcim:devicerole_list'
class DeviceRoleBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'dcim.add_devicerole'
class DeviceRoleBulkImportView(BulkImportView):
queryset = DeviceRole.objects.all()
model_form = forms.DeviceRoleCSVForm
table = tables.DeviceRoleTable
@ -999,8 +991,7 @@ class PlatformEditView(ObjectEditView):
default_return_url = 'dcim:platform_list'
class PlatformBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'dcim.add_platform'
class PlatformBulkImportView(BulkImportView):
queryset = Platform.objects.all()
model_form = forms.PlatformCSVForm
table = tables.PlatformTable
@ -1186,8 +1177,7 @@ class DeviceDeleteView(ObjectDeleteView):
default_return_url = 'dcim:device_list'
class DeviceBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'dcim.add_device'
class DeviceBulkImportView(BulkImportView):
queryset = Device.objects.all()
model_form = forms.DeviceCSVForm
table = tables.DeviceImportTable
@ -1195,8 +1185,7 @@ class DeviceBulkImportView(PermissionRequiredMixin, BulkImportView):
default_return_url = 'dcim:device_list'
class ChildDeviceBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'dcim.add_device'
class ChildDeviceBulkImportView(BulkImportView):
queryset = Device.objects.all()
model_form = forms.ChildDeviceCSVForm
table = tables.DeviceImportTable
@ -1261,8 +1250,7 @@ class ConsolePortDeleteView(ObjectDeleteView):
queryset = ConsolePort.objects.all()
class ConsolePortBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'dcim.add_consoleport'
class ConsolePortBulkImportView(BulkImportView):
queryset = ConsolePort.objects.all()
model_form = forms.ConsolePortCSVForm
table = tables.ConsolePortImportTable
@ -1314,8 +1302,7 @@ class ConsoleServerPortDeleteView(ObjectDeleteView):
queryset = ConsoleServerPort.objects.all()
class ConsoleServerPortBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'dcim.add_consoleserverport'
class ConsoleServerPortBulkImportView(BulkImportView):
queryset = ConsoleServerPort.objects.all()
model_form = forms.ConsoleServerPortCSVForm
table = tables.ConsoleServerPortImportTable
@ -1379,8 +1366,7 @@ class PowerPortDeleteView(ObjectDeleteView):
queryset = PowerPort.objects.all()
class PowerPortBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'dcim.add_powerport'
class PowerPortBulkImportView(BulkImportView):
queryset = PowerPort.objects.all()
model_form = forms.PowerPortCSVForm
table = tables.PowerPortImportTable
@ -1432,8 +1418,7 @@ class PowerOutletDeleteView(ObjectDeleteView):
queryset = PowerOutlet.objects.all()
class PowerOutletBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'dcim.add_poweroutlet'
class PowerOutletBulkImportView(BulkImportView):
queryset = PowerOutlet.objects.all()
model_form = forms.PowerOutletCSVForm
table = tables.PowerOutletImportTable
@ -1534,8 +1519,7 @@ class InterfaceDeleteView(ObjectDeleteView):
queryset = Interface.objects.all()
class InterfaceBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'dcim.add_interface'
class InterfaceBulkImportView(BulkImportView):
queryset = Interface.objects.all()
model_form = forms.InterfaceCSVForm
table = tables.InterfaceImportTable
@ -1599,8 +1583,7 @@ class FrontPortDeleteView(ObjectDeleteView):
queryset = FrontPort.objects.all()
class FrontPortBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'dcim.add_frontport'
class FrontPortBulkImportView(BulkImportView):
queryset = FrontPort.objects.all()
model_form = forms.FrontPortCSVForm
table = tables.FrontPortImportTable
@ -1664,8 +1647,7 @@ class RearPortDeleteView(ObjectDeleteView):
queryset = RearPort.objects.all()
class RearPortBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'dcim.add_rearport'
class RearPortBulkImportView(BulkImportView):
queryset = RearPort.objects.all()
model_form = forms.RearPortCSVForm
table = tables.RearPortImportTable
@ -1800,8 +1782,7 @@ class DeviceBayDepopulateView(PermissionRequiredMixin, View):
})
class DeviceBayBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'dcim.add_devicebay'
class DeviceBayBulkImportView(BulkImportView):
queryset = DeviceBay.objects.all()
model_form = forms.DeviceBayCSVForm
table = tables.DeviceBayImportTable
@ -2072,8 +2053,7 @@ class CableDeleteView(ObjectDeleteView):
default_return_url = 'dcim:cable_list'
class CableBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'dcim.add_cable'
class CableBulkImportView(BulkImportView):
queryset = Cable.objects.all()
model_form = forms.CableCSVForm
table = tables.CableTable
@ -2229,8 +2209,7 @@ class InventoryItemDeleteView(ObjectDeleteView):
queryset = InventoryItem.objects.all()
class InventoryItemBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'dcim.add_inventoryitem'
class InventoryItemBulkImportView(BulkImportView):
queryset = InventoryItem.objects.all()
model_form = forms.InventoryItemCSVForm
table = tables.InventoryItemTable
@ -2564,8 +2543,7 @@ class PowerPanelDeleteView(ObjectDeleteView):
default_return_url = 'dcim:powerpanel_list'
class PowerPanelBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'dcim.add_powerpanel'
class PowerPanelBulkImportView(BulkImportView):
queryset = PowerPanel.objects.all()
model_form = forms.PowerPanelCSVForm
table = tables.PowerPanelTable
@ -2630,8 +2608,7 @@ class PowerFeedDeleteView(ObjectDeleteView):
default_return_url = 'dcim:powerfeed_list'
class PowerFeedBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'dcim.add_powerfeed'
class PowerFeedBulkImportView(BulkImportView):
queryset = PowerFeed.objects.all()
model_form = forms.PowerFeedCSVForm
table = tables.PowerFeedTable

View File

@ -146,8 +146,7 @@ class VRFDeleteView(ObjectDeleteView):
default_return_url = 'ipam:vrf_list'
class VRFBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'ipam.add_vrf'
class VRFBulkImportView(BulkImportView):
queryset = VRF.objects.all()
model_form = forms.VRFCSVForm
table = tables.VRFTable
@ -257,8 +256,7 @@ class RIREditView(ObjectEditView):
default_return_url = 'ipam:rir_list'
class RIRBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'ipam.add_rir'
class RIRBulkImportView(BulkImportView):
queryset = RIR.objects.all()
model_form = forms.RIRCSVForm
table = tables.RIRTable
@ -360,8 +358,7 @@ class AggregateDeleteView(ObjectDeleteView):
default_return_url = 'ipam:aggregate_list'
class AggregateBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'ipam.add_aggregate'
class AggregateBulkImportView(BulkImportView):
queryset = Aggregate.objects.all()
model_form = forms.AggregateCSVForm
table = tables.AggregateTable
@ -400,8 +397,7 @@ class RoleEditView(ObjectEditView):
default_return_url = 'ipam:role_list'
class RoleBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'ipam.add_role'
class RoleBulkImportView(BulkImportView):
queryset = Role.objects.all()
model_form = forms.RoleCSVForm
table = tables.RoleTable
@ -576,8 +572,7 @@ class PrefixDeleteView(ObjectDeleteView):
default_return_url = 'ipam:prefix_list'
class PrefixBulkImportView(ObjectPermissionRequiredMixin, BulkImportView):
permission_required = 'ipam.add_prefix'
class PrefixBulkImportView(BulkImportView):
queryset = Prefix.objects.all()
model_form = forms.PrefixCSVForm
table = tables.PrefixTable
@ -744,8 +739,7 @@ class IPAddressBulkCreateView(PermissionRequiredMixin, BulkCreateView):
default_return_url = 'ipam:ipaddress_list'
class IPAddressBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'ipam.add_ipaddress'
class IPAddressBulkImportView(BulkImportView):
queryset = IPAddress.objects.all()
model_form = forms.IPAddressCSVForm
table = tables.IPAddressTable
@ -787,8 +781,7 @@ class VLANGroupEditView(ObjectEditView):
default_return_url = 'ipam:vlangroup_list'
class VLANGroupBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'ipam.add_vlangroup'
class VLANGroupBulkImportView(BulkImportView):
queryset = VLANGroup.objects.all()
model_form = forms.VLANGroupCSVForm
table = tables.VLANGroupTable
@ -904,8 +897,7 @@ class VLANDeleteView(ObjectDeleteView):
default_return_url = 'ipam:vlan_list'
class VLANBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'ipam.add_vlan'
class VLANBulkImportView(BulkImportView):
queryset = VLAN.objects.all()
model_form = forms.VLANCSVForm
table = tables.VLANTable
@ -969,8 +961,7 @@ class ServiceEditView(ObjectEditView):
return service.parent.get_absolute_url()
class ServiceBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'ipam.add_service'
class ServiceBulkImportView(BulkImportView):
queryset = Service.objects.all()
model_form = forms.ServiceCSVForm
table = tables.ServiceTable

View File

@ -41,8 +41,7 @@ class SecretRoleEditView(ObjectEditView):
default_return_url = 'secrets:secretrole_list'
class SecretRoleBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'secrets.add_secretrole'
class SecretRoleBulkImportView(BulkImportView):
queryset = SecretRole.objects.all()
model_form = forms.SecretRoleCSVForm
table = tables.SecretRoleTable
@ -189,7 +188,6 @@ class SecretDeleteView(ObjectDeleteView):
class SecretBulkImportView(BulkImportView):
permission_required = 'secrets.add_secret'
queryset = Secret.objects.all()
model_form = forms.SecretCSVForm
table = tables.SecretTable

View File

@ -35,8 +35,7 @@ class TenantGroupEditView(ObjectEditView):
default_return_url = 'tenancy:tenantgroup_list'
class TenantGroupBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'tenancy.add_tenantgroup'
class TenantGroupBulkImportView(BulkImportView):
queryset = TenantGroup.objects.all()
model_form = forms.TenantGroupCSVForm
table = tables.TenantGroupTable
@ -99,8 +98,7 @@ class TenantDeleteView(ObjectDeleteView):
default_return_url = 'tenancy:tenant_list'
class TenantBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'tenancy.add_tenant'
class TenantBulkImportView(BulkImportView):
queryset = Tenant.objects.all()
model_form = forms.TenantCSVForm
table = tables.TenantTable

View File

@ -652,7 +652,7 @@ class ObjectImportView(GetReturnURLMixin, View):
})
class BulkImportView(GetReturnURLMixin, View):
class BulkImportView(GetReturnURLMixin, ObjectPermissionRequiredMixin, View):
"""
Import objects in bulk (CSV format).
@ -684,6 +684,9 @@ class BulkImportView(GetReturnURLMixin, View):
"""
return obj_form.save()
def get_required_permission(self):
return get_permission_for_model(self.queryset.model, 'add')
def get(self, request):
return render(request, self.template_name, {

View File

@ -33,8 +33,7 @@ class ClusterTypeEditView(ObjectEditView):
default_return_url = 'virtualization:clustertype_list'
class ClusterTypeBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'virtualization.add_clustertype'
class ClusterTypeBulkImportView(BulkImportView):
queryset = ClusterType.objects.all()
model_form = forms.ClusterTypeCSVForm
table = tables.ClusterTypeTable
@ -63,8 +62,7 @@ class ClusterGroupEditView(ObjectEditView):
default_return_url = 'virtualization:clustergroup_list'
class ClusterGroupBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'virtualization.add_clustergroup'
class ClusterGroupBulkImportView(BulkImportView):
queryset = ClusterGroup.objects.all()
model_form = forms.ClusterGroupCSVForm
table = tables.ClusterGroupTable
@ -119,8 +117,7 @@ class ClusterDeleteView(ObjectDeleteView):
default_return_url = 'virtualization:cluster_list'
class ClusterBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'virtualization.add_cluster'
class ClusterBulkImportView(BulkImportView):
queryset = Cluster.objects.all()
model_form = forms.ClusterCSVForm
table = tables.ClusterTable
@ -274,8 +271,7 @@ class VirtualMachineDeleteView(ObjectDeleteView):
default_return_url = 'virtualization:virtualmachine_list'
class VirtualMachineBulkImportView(PermissionRequiredMixin, BulkImportView):
permission_required = 'virtualization.add_virtualmachine'
class VirtualMachineBulkImportView(BulkImportView):
queryset = VirtualMachine.objects.all()
model_form = forms.VirtualMachineCSVForm
table = tables.VirtualMachineTable