diff --git a/auditlog/context.py b/auditlog/context.py index 644c6ce..ed20931 100644 --- a/auditlog/context.py +++ b/auditlog/context.py @@ -23,7 +23,9 @@ def set_actor(actor, remote_addr=None): auditlog_value.set(context_data) # Connect signal for automatic logging - set_actor = partial(_set_actor, user=actor, signal_duid=context_data["signal_duid"]) + set_actor = partial( + _set_actor, user=actor, signal_duid=context_data["signal_duid"], + ) pre_save.connect( set_actor, sender=LogEntry, @@ -61,6 +63,7 @@ def _set_actor(user, sender, instance, signal_duid, **kwargs): and instance.actor is None ): instance.actor = user + instance.actor_email = user.email instance.remote_addr = auditlog["remote_addr"] diff --git a/auditlog/migrations/0016_add_actor_email.py b/auditlog/migrations/0016_add_actor_email.py new file mode 100644 index 0000000..98e0582 --- /dev/null +++ b/auditlog/migrations/0016_add_actor_email.py @@ -0,0 +1,17 @@ +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("auditlog", "0015_alter_logentry_changes"), + ] + + operations = [ + migrations.AddField( + model_name="logentry", + name="actor_email", + field=models.CharField( + null=True, verbose_name="actor email", blank=True, max_length=254, + ), + ), + ] diff --git a/auditlog/models.py b/auditlog/models.py index e0c637d..75e04b8 100644 --- a/auditlog/models.py +++ b/auditlog/models.py @@ -377,9 +377,11 @@ class LogEntry(models.Model): additional_data = models.JSONField( blank=True, null=True, verbose_name=_("additional data") ) + actor_email = models.CharField(blank=True, null=True, max_length=254) objects = LogEntryManager() + class Meta: get_latest_by = "timestamp" ordering = ["-timestamp"]