From f04604ce69a3aae03321379fb8efa660fb294fa7 Mon Sep 17 00:00:00 2001 From: Alek Ratzloff Date: Wed, 13 Jul 2022 12:35:57 -0700 Subject: [PATCH] Users may only report a post once per IP address. If a user *really* doesn't like a post, they may try to report it multiple times. Users may now only report a single post once per IP address. Signed-off-by: Alek Ratzloff --- board/forms.py | 2 ++ board/models.py | 5 +++++ board/static/board/post.js | 1 - 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/board/forms.py b/board/forms.py index 412bb8a..fb24697 100644 --- a/board/forms.py +++ b/board/forms.py @@ -101,6 +101,8 @@ class ReportForm(ModelForm): record = ReportRecord.objects.get(post=self.op) except ReportRecord.DoesNotExist: record = ReportRecord.objects.create(post=self.op) + if record.report_set.filter(ip=self.instance.ip): + raise ValidationError(_("You have already reported this post.")) self.instance.record = record return super(ReportForm, self).clean() diff --git a/board/models.py b/board/models.py index 710156f..e1ea7f5 100644 --- a/board/models.py +++ b/board/models.py @@ -281,6 +281,11 @@ class Report(models.Model): they are abusing the system. """ + class Meta: + unique_together = [ + ["record", "ip"], + ] + # The report that was made by this user record = models.ForeignKey("ReportRecord", on_delete=models.CASCADE) # Reason for this report diff --git a/board/static/board/post.js b/board/static/board/post.js index 59922bd..7da902c 100644 --- a/board/static/board/post.js +++ b/board/static/board/post.js @@ -200,7 +200,6 @@ function openReportWindow(reportUrl) { }); $(reportWindow.iframe, "iframe").on("load", () => { fitWindowToContent(reportWindow); - reportWindow.setResizable(false); }); reportWindow.show(); }