mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-08-06 02:15:20 +02:00
feat!: Abusive content reporting (#6977)
This implements milestones 1. and 4. from **Task F. Moderation features: Reporting** (part of [amendment of the workplan](https://codeberg.org/forgejo/sustainability/src/branch/main/2022-12-01-nlnet/2025-02-07-extended-workplan.md#task-f-moderation-features-reporting) for NLnet 2022-12-035): > 1. A reporting feature is implemented in the database. It ensures that content remains available for review, even if a user deletes it after a report was sent. > 4. Users can report the most relevant content types (at least: issue comments, repositories, users) ### See also: - forgejo/discussions#291 - forgejo/discussions#304 - forgejo/design#30 Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/6977 Reviewed-by: Gusted <gusted@noreply.codeberg.org> Reviewed-by: Otto <otto@codeberg.org> Co-authored-by: floss4good <floss4good@disroot.org> Co-committed-by: floss4good <floss4good@disroot.org>
This commit is contained in:
parent
c1fad04473
commit
dc56486b1f
34 changed files with 1040 additions and 6 deletions
|
@ -1,4 +1,5 @@
|
|||
// Copyright 2019 The Gitea Authors. All rights reserved.
|
||||
// Copyright 2024 The Forgejo Authors. All rights reserved.
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package repository
|
||||
|
@ -241,6 +242,11 @@ func UpdateRepository(ctx context.Context, repo *repo_model.Repository, visibili
|
|||
|
||||
e := db.GetEngine(ctx)
|
||||
|
||||
// If the repository was reported as abusive, a shadow copy should be created before first update.
|
||||
if err := repo_model.IfNeededCreateShadowCopyForRepository(ctx, repo, true); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if _, err = e.ID(repo.ID).AllCols().Update(repo); err != nil {
|
||||
return fmt.Errorf("update: %w", err)
|
||||
}
|
||||
|
|
15
modules/setting/moderation.go
Normal file
15
modules/setting/moderation.go
Normal file
|
@ -0,0 +1,15 @@
|
|||
// Copyright 2025 The Forgejo Authors. All rights reserved.
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
package setting
|
||||
|
||||
// Moderation settings
|
||||
var Moderation = struct {
|
||||
Enabled bool `ini:"ENABLED"`
|
||||
}{
|
||||
Enabled: false,
|
||||
}
|
||||
|
||||
func loadModerationFrom(rootCfg ConfigProvider) {
|
||||
mustMapSetting(rootCfg, "moderation", &Moderation)
|
||||
}
|
|
@ -221,6 +221,7 @@ func LoadSettings() {
|
|||
loadProjectFrom(CfgProvider)
|
||||
loadMimeTypeMapFrom(CfgProvider)
|
||||
loadF3From(CfgProvider)
|
||||
loadModerationFrom(CfgProvider)
|
||||
}
|
||||
|
||||
// LoadSettingsForInstall initializes the settings for install
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue