mirror of
https://github.com/pretix/pretix.git
synced 2026-10-02 19:24:42 +00:00
Extend log_action filter and make recursive
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user