1
- From 72a35d23c4f740059241a7fab4b59b9aea5fdbef Mon Sep 17 00:00:00 2001
1
+ From c58ce4daad7f00005200639b6a8275e361538824 Mon Sep 17 00:00:00 2001
2
2
From: Oleg Komarov <
[email protected] >
3
3
Date: Fri, 11 Apr 2025 16:57:54 +0200
4
- Subject: [PATCH 15/17 ] BLENDER: Add Spam Reporting
4
+ Subject: [PATCH] BLENDER: Add Spam Reporting
5
5
6
6
Spam reporting is available for trusted users (org members and admins) via a
7
7
button on a spammer's profile page;
@@ -10,19 +10,19 @@ a new "pending spam reports" indicator in the header for admins.
10
10
---
11
11
models/user/spamreport.go | 136 +++++++++++
12
12
options/locale/locale_en-US.ini | 22 ++
13
- routers/web/admin/spamreports.go | 142 +++++++++++
13
+ routers/web/admin/spamreports.go | 141 +++++++++++
14
14
routers/web/shared/user/header.go | 20 ++
15
15
routers/web/user/setting/spamreport.go | 43 ++++
16
16
routers/web/web.go | 12 +
17
- services/user/spamreport.go | 226 ++++++++++++++++++
17
+ services/user/spamreport.go | 230 ++++++++++++++++++
18
18
services/user/spamreport_test.go | 93 +++++++
19
19
templates/admin/navbar.tmpl | 5 +-
20
20
templates/admin/spamreports/list.tmpl | 88 +++++++
21
21
templates/base/head_navbar.tmpl | 7 +
22
22
templates/shared/user/profile_big_avatar.tmpl | 17 ++
23
23
.../shared/user/purgespammer_user_dialog.tmpl | 14 ++
24
24
.../shared/user/spamreport_user_dialog.tmpl | 14 ++
25
- 14 files changed, 838 insertions(+), 1 deletion(-)
25
+ 14 files changed, 841 insertions(+), 1 deletion(-)
26
26
create mode 100644 models/user/spamreport.go
27
27
create mode 100644 routers/web/admin/spamreports.go
28
28
create mode 100644 routers/web/user/setting/spamreport.go
@@ -230,10 +230,10 @@ index b9aae48f86..c1d828f62e 100644
230
230
orgs.teams = Teams
231
231
diff --git a/routers/web/admin/spamreports.go b/routers/web/admin/spamreports.go
232
232
new file mode 100644
233
- index 0000000000..6f2ce0c37a
233
+ index 0000000000..16fbd615bd
234
234
--- /dev/null
235
235
+++ b/routers/web/admin/spamreports.go
236
- @@ -0,0 +1,142 @@
236
+ @@ -0,0 +1,141 @@
237
237
+ // Copyright 2025 The Gitea Authors.
238
238
+ // SPDX-License-Identifier: MIT
239
239
+
@@ -247,15 +247,15 @@ index 0000000000..6f2ce0c37a
247
247
+
248
248
+ "code.gitea.io/gitea/models/db"
249
249
+ user_model "code.gitea.io/gitea/models/user"
250
- + "code.gitea.io/gitea/modules/base"
251
250
+ "code.gitea.io/gitea/modules/log"
252
251
+ "code.gitea.io/gitea/modules/setting"
252
+ + "code.gitea.io/gitea/modules/templates"
253
253
+ "code.gitea.io/gitea/services/context"
254
254
+ user_service "code.gitea.io/gitea/services/user"
255
255
+ )
256
256
+
257
257
+ const (
258
- + tplSpamReports base .TplName = "admin/spamreports/list"
258
+ + tplSpamReports templates .TplName = "admin/spamreports/list"
259
259
+ )
260
260
+
261
261
+ // GetPendingSpamReports populates the counter for the header section displayed to site admins.
@@ -309,7 +309,6 @@ index 0000000000..6f2ce0c37a
309
309
+ ctx.Data["SpamReports"] = spamReports
310
310
+
311
311
+ pager := context.NewPagination(int(count), opts.PageSize, opts.Page, 5)
312
- + pager.SetDefaultParams(ctx)
313
312
+ ctx.Data["Page"] = pager
314
313
+
315
314
+ statusCounts, err := user_model.GetSpamReportStatusCounts(ctx)
@@ -502,10 +501,10 @@ index bd850baec0..385d15dc5e 100644
502
501
})
503
502
diff --git a/services/user/spamreport.go b/services/user/spamreport.go
504
503
new file mode 100644
505
- index 0000000000..d240546cc0
504
+ index 0000000000..1d9c2d3236
506
505
--- /dev/null
507
506
+++ b/services/user/spamreport.go
508
- @@ -0,0 +1,226 @@
507
+ @@ -0,0 +1,230 @@
509
508
+ // Copyright 2025 The Gitea Authors. All rights reserved.
510
509
+ // SPDX-License-Identifier: MIT
511
510
+
@@ -516,6 +515,7 @@ index 0000000000..d240546cc0
516
515
+ import (
517
516
+ "context"
518
517
+ "fmt"
518
+ + "strconv"
519
519
+
520
520
+ "code.gitea.io/gitea/models/db"
521
521
+ issues_model "code.gitea.io/gitea/models/issues"
@@ -675,7 +675,10 @@ index 0000000000..d240546cc0
675
675
+ }
676
676
+
677
677
+ log.Info("Cleaning up issues and pulls by user %s", user.Name)
678
- + issues, err := issues_model.Issues(ctx, &issues_model.IssuesOptions{PosterID: optional.Some(user.ID)})
678
+ + issues, err := issues_model.Issues(ctx, &issues_model.IssuesOptions{
679
+ + PosterID: strconv.FormatInt(user.ID, 10),
680
+ + })
681
+ +
679
682
+ if err != nil {
680
683
+ return fmt.Errorf("failed to fetch IssueIDs: %w", err)
681
684
+ }
0 commit comments