From 4986ace59fc7d48d7383eab7bcfd69fe9f12c4f7 Mon Sep 17 00:00:00 2001 From: Carlos Quintana <74399022+cquintana92@users.noreply.github.com> Date: Tue, 15 Oct 2024 09:39:40 +0200 Subject: [PATCH] fix: emit mailboxes change event from alias_mailbox_utils (#2264) --- app/alias_mailbox_utils.py | 7 +++++++ app/api/views/alias.py | 3 --- tests/test_alias_mailbox_utils.py | 9 ++++++++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/app/alias_mailbox_utils.py b/app/alias_mailbox_utils.py index ac23aa68..c0e1b01a 100644 --- a/app/alias_mailbox_utils.py +++ b/app/alias_mailbox_utils.py @@ -2,6 +2,7 @@ from dataclasses import dataclass from enum import Enum from typing import List, Optional +from app.alias_audit_log_utils import emit_alias_audit_log, AliasAuditLogAction from app.db import Session from app.models import Alias, AliasMailbox, Mailbox @@ -51,4 +52,10 @@ def set_mailboxes_for_alias( else: AliasMailbox.create(alias_id=alias.id, mailbox_id=mailbox.id) + emit_alias_audit_log( + alias, + AliasAuditLogAction.ChangedMailboxes, + message=",".join(map(str, mailbox_ids)), + ) + return None diff --git a/app/api/views/alias.py b/app/api/views/alias.py index e0c73526..d81747fa 100644 --- a/app/api/views/alias.py +++ b/app/api/views/alias.py @@ -306,9 +306,6 @@ def update_alias(alias_id): mailbox_ids_string = ",".join(map(str, mailbox_ids)) changed_fields.append(f"mailbox_ids ({mailbox_ids_string})") - emit_alias_audit_log( - alias, AliasAuditLogAction.ChangedMailboxes, message=mailbox_ids_string - ) changed = True if "name" in data: diff --git a/tests/test_alias_mailbox_utils.py b/tests/test_alias_mailbox_utils.py index 79394625..889b799a 100644 --- a/tests/test_alias_mailbox_utils.py +++ b/tests/test_alias_mailbox_utils.py @@ -1,10 +1,11 @@ from typing import Tuple +from app.alias_audit_log_utils import AliasAuditLogAction from app.alias_mailbox_utils import ( set_mailboxes_for_alias, CannotSetMailboxesForAliasCause, ) -from app.models import Alias, Mailbox, User, AliasMailbox +from app.models import Alias, Mailbox, User, AliasMailbox, AliasAuditLog from tests.utils import create_new_user, random_email @@ -61,3 +62,9 @@ def test_set_mailboxes_for_alias_mailbox_success(): alias_mailboxes = AliasMailbox.filter_by(alias_id=alias.id).all() assert len(alias_mailboxes) == 1 assert alias_mailboxes[0].mailbox_id == mb2.id + + audit_logs = AliasAuditLog.filter_by(alias_id=alias.id).all() + assert len(audit_logs) == 2 + assert audit_logs[0].action == AliasAuditLogAction.CreateAlias.value + assert audit_logs[1].action == AliasAuditLogAction.ChangedMailboxes.value + assert audit_logs[1].message == f"{mb1.id},{mb2.id}"