Skip to content

Commit

Permalink
Add notifiers to audit logs
Browse files Browse the repository at this point in the history
We had a query for listing notifiers in views.py::AuditList, however, we never
registered any logs from signals.py, therefore the result of that query was
always empty.

This commit adds the necessary instructions for registering logs when creating,
updating or deleting notifiers, so they will appear in the audit logs.

Since the data is dumped using model_to_dict(), we also needed to modify
models.py to ensure that sensible information is not displayed. That is, when
the users have set the "alias" field because they want to hide the value.
  • Loading branch information
vincent-olivert-riera committed Jan 26, 2024
1 parent f6a00ef commit f88c384
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 1 deletion.
5 changes: 4 additions & 1 deletion promgen/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -572,7 +572,10 @@ def log(cls, body, instance=None, old=None, **kwargs):
if instance:
kwargs["content_type"] = ContentType.objects.get_for_model(instance)
kwargs["object_id"] = instance.id
kwargs["data"] = json.dumps(model_to_dict(instance), sort_keys=True)
data_dict = model_to_dict(instance)
if isinstance(instance, Sender) and data_dict["alias"]:
data_dict["value"] = "********"
kwargs["data"] = json.dumps(data_dict, sort_keys=True)
if old:
kwargs["old"] = json.dumps(model_to_dict(old), sort_keys=True)

Expand Down
3 changes: 3 additions & 0 deletions promgen/signals.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ def update_log(sender, instance, **kwargs):
pre_save.connect(update_log, sender=models.Host)
pre_save.connect(update_log, sender=models.Project)
pre_save.connect(update_log, sender=models.Rule)
pre_save.connect(update_log, sender=models.Sender)
pre_save.connect(update_log, sender=models.Service)
pre_save.connect(update_log, sender=models.URL)

Expand All @@ -146,6 +147,7 @@ def create_log(sender, instance, created, **kwargs):
post_save.connect(create_log, sender=models.Host)
post_save.connect(create_log, sender=models.Project)
post_save.connect(create_log, sender=models.Rule)
post_save.connect(create_log, sender=models.Sender)
post_save.connect(create_log, sender=models.Service)
post_save.connect(create_log, sender=models.URL)

Expand All @@ -159,6 +161,7 @@ def delete_log(sender, instance, **kwargs):
post_delete.connect(delete_log, sender=models.Host)
post_delete.connect(delete_log, sender=models.Project)
post_delete.connect(delete_log, sender=models.Rule)
post_delete.connect(delete_log, sender=models.Sender)
post_delete.connect(delete_log, sender=models.Service)
post_delete.connect(delete_log, sender=models.URL)

Expand Down

0 comments on commit f88c384

Please sign in to comment.