From 7d44e54913b031b8a4ba6c997abde4c592925c5c Mon Sep 17 00:00:00 2001 From: Marie PUPO JEAMMET Date: Thu, 11 Dec 2025 15:58:36 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(admin)=20manage=20aliases=20from=20ad?= =?UTF-8?q?min?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit manage aliases from admin, including alias creation, deletion and sync --- CHANGELOG.md | 14 +++++++++++--- src/backend/mailbox_manager/admin.py | 11 +++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 58f072f..70c165f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,11 +8,19 @@ and this project adheres to ## [Unreleased] -- 🔒️(security) upgrade python version to fix vulnerability #1010 -- 🐛(dimail) allow mailboxes and aliases to have the same local part #986 -- 🐛(dimail) ignore oxadmin when importing mailboxes from dimail #986 +### Added +- ✨(domains) alias sorting and admin - ✨(aliases) delete all aliases in one call #1002 + +### Fixed +- 🔒️(security) upgrade python version to fix vulnerability #1010 +- 🐛(dimail) ignore oxadmin when importing mailboxes from dimail #986 - ✨(aliases) fix deleting single aliases #1002 + +### Changed +- 🐛(dimail) allow mailboxes and aliases to have the same local part #986 + +### Removed - 🔥(plugins) remove CommuneCreation plugin ## [1.21.0] - 2025-12-05 diff --git a/src/backend/mailbox_manager/admin.py b/src/backend/mailbox_manager/admin.py index 04674d1..c56ecd0 100644 --- a/src/backend/mailbox_manager/admin.py +++ b/src/backend/mailbox_manager/admin.py @@ -235,6 +235,7 @@ class MailDomainAdmin(admin.ModelAdmin): inlines = (UserMailDomainAccessInline,) actions = ( sync_mailboxes_from_dimail, + sync_aliases_from_dimail, fetch_domain_status_from_dimail, fetch_domain_expected_config_from_dimail, send_pending_mailboxes, @@ -308,3 +309,13 @@ class MailDomainInvitationAdmin(admin.ModelAdmin): def is_expired(self, obj): """Return the expiration date of the invitation.""" return obj.is_expired + + +@admin.register(models.Alias) +class AliasAdmin(admin.ModelAdmin): + """Admin for alias model.""" + + list_display = ("local_part", "domain", "destination", "updated_at") + list_filter = ("domain",) + search_fields = ("local_part", "domain__name", "destination") + readonly_fields = ["updated_at"]