diff --git a/api/funkwhale_api/moderation/tasks.py b/api/funkwhale_api/moderation/tasks.py index 2942e3d03..0d0e97052 100644 --- a/api/funkwhale_api/moderation/tasks.py +++ b/api/funkwhale_api/moderation/tasks.py @@ -53,10 +53,11 @@ def send_new_report_email_to_moderators(report): # we fallback on superusers moderators = users_models.User.objects.filter(is_superuser=True) moderators = sorted(moderators, key=lambda m: m.pk) + submitter_repr = ( + report.submitter.full_username if report.submitter else report.submitter_email + ) subject = "[{} moderation - {}] New report from {}".format( - settings.FUNKWHALE_HOSTNAME, - report.get_type_display(), - report.submitter.full_username if report.submitter else report.submitter_email, + settings.FUNKWHALE_HOSTNAME, report.get_type_display(), submitter_repr ) detail_url = federation_utils.full_url( "/manage/moderation/reports/{}".format(report.uuid) @@ -67,10 +68,7 @@ def send_new_report_email_to_moderators(report): unresolved_reports = models.Report.objects.filter(is_handled=False).count() body = [ '{} just submitted a report in the "{}" category.'.format( - report.submitter.full_username - if report.submitter - else report.submitter_email, - report.get_type_display(), + submitter_repr, report.get_type_display() ), "", "Reported object: {} - {}".format( diff --git a/api/tests/moderation/test_tasks.py b/api/tests/moderation/test_tasks.py index 18e031fd8..a4f287799 100644 --- a/api/tests/moderation/test_tasks.py +++ b/api/tests/moderation/test_tasks.py @@ -17,6 +17,8 @@ def test_report_created_signal_sends_email_to_mods(factories, mailoutbox, settin mod2 = factories["users.User"](permission_moderation=True) # inactive, so no email factories["users.User"](permission_moderation=True, is_active=False) + # no moderation permission, so no email + factories["users.User"]() report = factories["moderation.Report"]() @@ -28,6 +30,7 @@ def test_report_created_signal_sends_email_to_mods(factories, mailoutbox, settin unresolved_reports_url = federation_utils.full_url( "/manage/moderation/reports?q=resolved:no" ) + assert len(mailoutbox) == 2 for i, mod in enumerate([mod1, mod2]): m = mailoutbox[i] assert m.subject == "[{} moderation - {}] New report from {}".format(