Parcourir la source

Fixes #892: Restored missing edit/delete buttons when viewing child prefixes and IP addresses from a parent object

Jeremy Stretch il y a 8 ans
Parent
commit
b7f4a11eee
1 fichiers modifiés avec 24 ajouts et 0 suppressions
  1. 24 0
      netbox/ipam/views.py

+ 24 - 0
netbox/ipam/views.py

@@ -297,9 +297,17 @@ def aggregate(request, pk):
         prefix_table.base_columns['pk'].visible = True
         prefix_table.base_columns['pk'].visible = True
     RequestConfig(request, paginate={'klass': EnhancedPaginator}).configure(prefix_table)
     RequestConfig(request, paginate={'klass': EnhancedPaginator}).configure(prefix_table)
 
 
+    # Compile permissions list for rendering the object table
+    permissions = {
+        'add': request.user.has_perm('ipam.add_prefix'),
+        'change': request.user.has_perm('ipam.change_prefix'),
+        'delete': request.user.has_perm('ipam.delete_prefix'),
+    }
+
     return render(request, 'ipam/aggregate.html', {
     return render(request, 'ipam/aggregate.html', {
         'aggregate': aggregate,
         'aggregate': aggregate,
         'prefix_table': prefix_table,
         'prefix_table': prefix_table,
+        'permissions': permissions,
     })
     })
 
 
 
 
@@ -425,6 +433,13 @@ def prefix(request, pk):
         child_prefix_table.base_columns['pk'].visible = True
         child_prefix_table.base_columns['pk'].visible = True
     RequestConfig(request, paginate={'klass': EnhancedPaginator}).configure(child_prefix_table)
     RequestConfig(request, paginate={'klass': EnhancedPaginator}).configure(child_prefix_table)
 
 
+    # Compile permissions list for rendering the object table
+    permissions = {
+        'add': request.user.has_perm('ipam.add_prefix'),
+        'change': request.user.has_perm('ipam.change_prefix'),
+        'delete': request.user.has_perm('ipam.delete_prefix'),
+    }
+
     return render(request, 'ipam/prefix.html', {
     return render(request, 'ipam/prefix.html', {
         'prefix': prefix,
         'prefix': prefix,
         'aggregate': aggregate,
         'aggregate': aggregate,
@@ -432,6 +447,7 @@ def prefix(request, pk):
         'parent_prefix_table': parent_prefix_table,
         'parent_prefix_table': parent_prefix_table,
         'child_prefix_table': child_prefix_table,
         'child_prefix_table': child_prefix_table,
         'duplicate_prefix_table': duplicate_prefix_table,
         'duplicate_prefix_table': duplicate_prefix_table,
+        'permissions': permissions,
         'return_url': prefix.get_absolute_url(),
         'return_url': prefix.get_absolute_url(),
     })
     })
 
 
@@ -490,9 +506,17 @@ def prefix_ipaddresses(request, pk):
         ip_table.base_columns['pk'].visible = True
         ip_table.base_columns['pk'].visible = True
     RequestConfig(request, paginate={'klass': EnhancedPaginator}).configure(ip_table)
     RequestConfig(request, paginate={'klass': EnhancedPaginator}).configure(ip_table)
 
 
+    # Compile permissions list for rendering the object table
+    permissions = {
+        'add': request.user.has_perm('ipam.add_ipaddress'),
+        'change': request.user.has_perm('ipam.change_ipaddress'),
+        'delete': request.user.has_perm('ipam.delete_ipaddress'),
+    }
+
     return render(request, 'ipam/prefix_ipaddresses.html', {
     return render(request, 'ipam/prefix_ipaddresses.html', {
         'prefix': prefix,
         'prefix': prefix,
         'ip_table': ip_table,
         'ip_table': ip_table,
+        'permissions': permissions,
     })
     })