diff --git a/netbox/dcim/tables/template_code.py b/netbox/dcim/tables/template_code.py
index dd0581ddc..d390871c4 100644
--- a/netbox/dcim/tables/template_code.py
+++ b/netbox/dcim/tables/template_code.py
@@ -115,10 +115,28 @@ CONSOLEPORT_BUTTONS = """
{% if record.cable %}
{% include 'dcim/inc/cable_toggle_buttons.html' with cable=record.cable %}
- {% if perms.dcim.delete_cable %}
-
-
-
+ {% if perms.dcim.change_cable or perms.dcim.delete_cable %}
+
+
+
+
{% endif %}
{% elif perms.dcim.add_cable %}
@@ -147,10 +165,28 @@ CONSOLESERVERPORT_BUTTONS = """
{% if record.cable %}
{% include 'dcim/inc/cable_toggle_buttons.html' with cable=record.cable %}
- {% if perms.dcim.delete_cable %}
-
-
-
+ {% if perms.dcim.change_cable or perms.dcim.delete_cable %}
+
+
+
+
{% endif %}
{% elif perms.dcim.add_cable %}
@@ -179,10 +215,28 @@ POWERPORT_BUTTONS = """
{% if record.cable %}
{% include 'dcim/inc/cable_toggle_buttons.html' with cable=record.cable %}
- {% if perms.dcim.delete_cable %}
-
-
-
+ {% if perms.dcim.change_cable or perms.dcim.delete_cable %}
+
+
+
+
{% endif %}
{% elif perms.dcim.add_cable %}
@@ -210,10 +264,28 @@ POWEROUTLET_BUTTONS = """
{% if record.cable %}
{% include 'dcim/inc/cable_toggle_buttons.html' with cable=record.cable %}
- {% if perms.dcim.delete_cable %}
-
-
-
+ {% if perms.dcim.change_cable or perms.dcim.delete_cable %}
+
+
+
+
{% endif %}
{% elif perms.dcim.add_cable %}
@@ -258,10 +330,28 @@ INTERFACE_BUTTONS = """
{% endif %}
{% if record.cable %}
{% include 'dcim/inc/cable_toggle_buttons.html' with cable=record.cable %}
- {% if perms.dcim.delete_cable %}
-
-
-
+ {% if perms.dcim.change_cable or perms.dcim.delete_cable %}
+
+
+
+
{% endif %}
{% elif record.wireless_link %}
{% if perms.wireless.delete_wirelesslink %}
@@ -303,10 +393,28 @@ FRONTPORT_BUTTONS = """
{% if record.cable %}
{% include 'dcim/inc/cable_toggle_buttons.html' with cable=record.cable %}
- {% if perms.dcim.delete_cable %}
-
-
-
+ {% if perms.dcim.change_cable or perms.dcim.delete_cable %}
+
+
+
+
{% endif %}
{% elif perms.dcim.add_cable %}
@@ -340,10 +448,28 @@ REARPORT_BUTTONS = """
{% if record.cable %}
{% include 'dcim/inc/cable_toggle_buttons.html' with cable=record.cable %}
- {% if perms.dcim.delete_cable %}
-
-
-
+ {% if perms.dcim.change_cable or perms.dcim.delete_cable %}
+
+
+
+
{% endif %}
{% elif perms.dcim.add_cable %}
diff --git a/netbox/templates/circuits/inc/circuit_termination.html b/netbox/templates/circuits/inc/circuit_termination.html
index 160ff940f..12c63bd34 100644
--- a/netbox/templates/circuits/inc/circuit_termination.html
+++ b/netbox/templates/circuits/inc/circuit_termination.html
@@ -57,6 +57,11 @@
Trace
+ {% if perms.dcim.change_cable %}
+
+ Edit
+
+ {% endif %}
{% if perms.dcim.delete_cable %}
Disconnect