ソースを参照

adds sensitive_parameters to DataBackend #12625

Abhimanyu Saharan 2 年 前
コミット
0276f29067
2 ファイル変更8 行追加1 行削除
  1. 3 0
      netbox/core/data_backends.py
  2. 5 1
      netbox/templates/core/datasource.html

+ 3 - 0
netbox/core/data_backends.py

@@ -41,6 +41,7 @@ def register_backend(name):
 
 class DataBackend:
     parameters = {}
+    sensitive_parameters = []
 
     def __init__(self, url, **kwargs):
         self.url = url
@@ -86,6 +87,7 @@ class GitBackend(DataBackend):
             widget=forms.TextInput(attrs={'class': 'form-control'})
         )
     }
+    sensitive_parameters = ['password']
 
     @contextmanager
     def fetch(self):
@@ -135,6 +137,7 @@ class S3Backend(DataBackend):
             widget=forms.TextInput(attrs={'class': 'form-control'})
         ),
     }
+    sensitive_parameters = ['aws_secret_access_key']
 
     REGION_REGEX = r's3\.([a-z0-9-]+)\.amazonaws\.com'
 

+ 5 - 1
netbox/templates/core/datasource.html

@@ -88,7 +88,11 @@
             {% for name, field in object.get_backend.parameters.items %}
               <tr>
                 <th scope="row">{{ field.label }}</th>
-                <td>{{ object.parameters|get_key:name|placeholder }}</td>
+                {% if name in object.get_backend.sensitive_parameters and not perms.core.change_datasource %}
+                  <td>********</td>
+                {% else %}
+                  <td>{{ object.parameters|get_key:name|placeholder }}</td>
+                {% endif %}
               </tr>
             {% empty %}
               <tr>