Extend log_action filter and make recursive

This commit is contained in:
Richard Schreiber
2026-09-25 13:58:19 +02:00
parent 2791d5e49e
commit 4b31f60207
+23 -5
View File
@@ -151,12 +151,30 @@ class LoggingMixin:
logentry = LogEntry(content_object=self, user=user, action_type=action, event=event,
organizer_id=organizer_id, **kwargs)
if isinstance(data, dict):
sensitivekeys = ['password', 'secret', 'api_key']
# sensitivekeys are matched whether contained, not exactly
sensitivekeys = [
'token',
'apikey',
'_key',
'password',
'Password',
'_pass',
'secret',
]
def clean_dict_recursive(d):
data = {}
for k, v in d.items():
print(k, v)
if not v:
pass
elif any([sensitivekey in k for sensitivekey in sensitivekeys]):
v = "********"
elif isinstance(v, dict):
v = clean_dict_recursive(v)
data[k] = v
return data
for sensitivekey in sensitivekeys:
for k, v in data.items():
if (sensitivekey in k) and v:
data[k] = "********"
data = clean_dict_recursive(data)
logentry.data = json.dumps(data, cls=CustomJSONEncoder, sort_keys=True)
elif data: