diff --git a/modoboa/admin/handlers.py b/modoboa/admin/handlers.py index ff9d7c954..427990efa 100644 --- a/modoboa/admin/handlers.py +++ b/modoboa/admin/handlers.py @@ -114,13 +114,21 @@ def mailbox_deleted_handler(sender, **kwargs): alias.delete() models.Quota.objects.filter(username=mb.full_address).delete() request = lib_signals.get_request() - if not request.localconfig.parameters.get_value( - "handle_mailboxes", raise_exception=False): - return - keepdir = request.POST.get("keepdir", "false") == "true" - if keepdir: - return - mb.delete_dir() + if request: + if not request.localconfig.parameters.get_value( + "handle_mailboxes", raise_exception=False): + return + keepdir = request.POST.get("keepdir", "false") == "true" + if keepdir: + return + mb.delete_dir() + else: + # Management command context + localconfig = core_models.LocalConfig.objects.first() + if not localconfig.parameters.get_value( + "handle_mailboxes", raise_exception=False): + return + mb.delete_dir() @receiver(signals.post_delete, sender=models.Mailbox) diff --git a/modoboa/core/handlers.py b/modoboa/core/handlers.py index 76d607ff4..c146dc89f 100644 --- a/modoboa/core/handlers.py +++ b/modoboa/core/handlers.py @@ -70,11 +70,15 @@ def log_object_removal(sender, instance, **kwargs): except Version.DoesNotExist: return logger = logging.getLogger("modoboa.admin") - msg = _("%(object)s '%(name)s' %(action)s by user %(user)s") % { + msg = _("%(object)s '%(name)s' %(action)s by ") % { "object": smart_text(version.content_type).capitalize(), - "name": version.object_repr, "action": _("deleted"), - "user": get_request().user.username + "name": version.object_repr, "action": _("deleted") } + request = get_request() + if request: + msg += _("user {}").format(request.user.username) + else: + msg += _("management command") logger.critical(msg)