diff --git a/netbox/dcim/api/views.py b/netbox/dcim/api/views.py index 9c8fe12de..3abfddbc2 100644 --- a/netbox/dcim/api/views.py +++ b/netbox/dcim/api/views.py @@ -395,7 +395,7 @@ class DeviceViewSet(CustomFieldModelViewSet): )) # Verify user permission - if not request.user.has_perm('dcim.napalm_read'): + if not request.user.has_perm('dcim.napalm_read_device'): return HttpResponseForbidden() # Connect to the device diff --git a/netbox/dcim/migrations/0041_napalm_integration.py b/netbox/dcim/migrations/0041_napalm_integration.py index 50c2fbd99..3acad9f0b 100644 --- a/netbox/dcim/migrations/0041_napalm_integration.py +++ b/netbox/dcim/migrations/0041_napalm_integration.py @@ -22,7 +22,7 @@ class Migration(migrations.Migration): operations = [ migrations.AlterModelOptions( name='device', - options={'ordering': ['name'], 'permissions': (('napalm_read', 'Read-only access to devices via NAPALM'), ('napalm_write', 'Read/write access to devices via NAPALM'))}, + options={'ordering': ['name']}, ), migrations.AddField( model_name='platform', diff --git a/netbox/dcim/migrations/0089_deterministic_ordering.py b/netbox/dcim/migrations/0089_deterministic_ordering.py index 6944cff00..77d18739e 100644 --- a/netbox/dcim/migrations/0089_deterministic_ordering.py +++ b/netbox/dcim/migrations/0089_deterministic_ordering.py @@ -12,7 +12,7 @@ class Migration(migrations.Migration): operations = [ migrations.AlterModelOptions( name='device', - options={'ordering': ('name', 'pk'), 'permissions': (('napalm_read', 'Read-only access to devices via NAPALM'), ('napalm_write', 'Read/write access to devices via NAPALM'))}, + options={'ordering': ('name', 'pk')}, ), migrations.AlterModelOptions( name='rack', diff --git a/netbox/dcim/migrations/0095_primary_model_ordering.py b/netbox/dcim/migrations/0095_primary_model_ordering.py index 3bc780161..6225a9b73 100644 --- a/netbox/dcim/migrations/0095_primary_model_ordering.py +++ b/netbox/dcim/migrations/0095_primary_model_ordering.py @@ -30,7 +30,7 @@ class Migration(migrations.Migration): operations = [ migrations.AlterModelOptions( name='device', - options={'ordering': ('_name', 'pk'), 'permissions': (('napalm_read', 'Read-only access to devices via NAPALM'), ('napalm_write', 'Read/write access to devices via NAPALM'))}, + options={'ordering': ('_name', 'pk')}, ), migrations.AlterModelOptions( name='rack', diff --git a/netbox/dcim/models/__init__.py b/netbox/dcim/models/__init__.py index 3dd3b8c89..4d18509a9 100644 --- a/netbox/dcim/models/__init__.py +++ b/netbox/dcim/models/__init__.py @@ -1477,10 +1477,6 @@ class Device(ChangeLoggedModel, ConfigContextModel, CustomFieldModel): ('rack', 'position', 'face'), ('virtual_chassis', 'vc_position'), ) - permissions = ( - ('napalm_read', 'Read-only access to devices via NAPALM'), - ('napalm_write', 'Read/write access to devices via NAPALM'), - ) def __str__(self): return self.display_name or super().__str__() diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index 0f4297fd6..2508590d9 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -1099,7 +1099,7 @@ class DeviceInventoryView(ObjectView): class DeviceStatusView(ObjectView): - additional_permissions = ['dcim.napalm_read'] + additional_permissions = ['dcim.napalm_read_device'] queryset = Device.objects.all() def get(self, request, pk): @@ -1113,7 +1113,7 @@ class DeviceStatusView(ObjectView): class DeviceLLDPNeighborsView(ObjectView): - additional_permissions = ['dcim.napalm_read'] + additional_permissions = ['dcim.napalm_read_device'] queryset = Device.objects.all() def get(self, request, pk): @@ -1133,7 +1133,7 @@ class DeviceLLDPNeighborsView(ObjectView): class DeviceConfigView(ObjectView): - additional_permissions = ['dcim.napalm_read'] + additional_permissions = ['dcim.napalm_read_device'] queryset = Device.objects.all() def get(self, request, pk): diff --git a/netbox/templates/dcim/device.html b/netbox/templates/dcim/device.html index ef1a301e2..a42250a3d 100644 --- a/netbox/templates/dcim/device.html +++ b/netbox/templates/dcim/device.html @@ -101,7 +101,7 @@ Inventory {{ device.inventory_items.count }} - {% if perms.dcim.napalm_read %} + {% if perms.dcim.napalm_read_device %} {% if device.status != 'active' %} {% include 'dcim/inc/device_napalm_tabs.html' with disabled_message='Device must be in active status' %} {% elif not device.platform %}