[MODERATION] Purge issues on user deletion (squash)

(cherry picked from commit 4f529d9596)
(cherry picked from commit f0e3acadd3)
(cherry picked from commit 682c4effe6)
(cherry picked from commit e43c2d84fd)
This commit is contained in:
Earl Warren 2023-10-01 18:40:58 +02:00
parent d8282122ad
commit 9c8e53ccc7
No known key found for this signature in database
GPG key ID: 0579CB2928A78A00
8 changed files with 134 additions and 22 deletions

View file

@ -338,20 +338,3 @@
created_unix: 978307210 created_unix: 978307210
updated_unix: 978307210 updated_unix: 978307210
is_locked: false is_locked: false
-
id: 21
repo_id: 10
index: 2
poster_id: 8
original_author_id: 0
name: issue for pr
content: content
milestone_id: 0
priority: 0
is_closed: false
is_pull: false
num_comments: 0
created_unix: 946684830
updated_unix: 978307200
is_locked: false

View file

@ -9,7 +9,7 @@
max_index: 2 max_index: 2
- -
group_id: 10 group_id: 10
max_index: 2 max_index: 1
- -
group_id: 32 group_id: 32
max_index: 2 max_index: 2

View file

@ -283,7 +283,7 @@
num_watches: 0 num_watches: 0
num_stars: 0 num_stars: 0
num_forks: 1 num_forks: 1
num_issues: 1 num_issues: 0
num_closed_issues: 0 num_closed_issues: 0
num_pulls: 1 num_pulls: 1
num_closed_pulls: 0 num_closed_pulls: 0

View file

@ -4,10 +4,12 @@
package integration package integration
import ( import (
"fmt"
"net/http" "net/http"
"strconv" "strconv"
"testing" "testing"
issues_model "code.gitea.io/gitea/models/issues"
"code.gitea.io/gitea/models/unittest" "code.gitea.io/gitea/models/unittest"
user_model "code.gitea.io/gitea/models/user" user_model "code.gitea.io/gitea/models/user"
"code.gitea.io/gitea/tests" "code.gitea.io/gitea/tests"
@ -68,17 +70,22 @@ func makeRequest(t *testing.T, formData user_model.User, headerCode int) {
} }
func TestAdminDeleteUser(t *testing.T) { func TestAdminDeleteUser(t *testing.T) {
defer tests.AddFixtures("tests/integration/fixtures/TestAdminDeleteUser/")()
defer tests.PrepareTestEnv(t)() defer tests.PrepareTestEnv(t)()
session := loginUser(t, "user1") session := loginUser(t, "user1")
csrf := GetCSRF(t, session, "/admin/users/8/edit") userID := int64(1000)
req := NewRequestWithValues(t, "POST", "/admin/users/8/delete", map[string]string{
unittest.AssertExistsAndLoadBean(t, &issues_model.Issue{PosterID: userID})
csrf := GetCSRF(t, session, fmt.Sprintf("/admin/users/%d/edit", userID))
req := NewRequestWithValues(t, "POST", fmt.Sprintf("/admin/users/%d/delete", userID), map[string]string{
"_csrf": csrf, "_csrf": csrf,
"purge": "true", "purge": "true",
}) })
session.MakeRequest(t, req, http.StatusSeeOther) session.MakeRequest(t, req, http.StatusSeeOther)
assertUserDeleted(t, 8, true) assertUserDeleted(t, userID, true)
unittest.CheckConsistencyFor(t, &user_model.User{}) unittest.CheckConsistencyFor(t, &user_model.User{})
} }

View file

@ -0,0 +1,16 @@
-
id: 1000
repo_id: 1000
index: 2
poster_id: 1000
original_author_id: 0
name: NAME
content: content
milestone_id: 0
priority: 0
is_closed: false
is_pull: false
num_comments: 0
created_unix: 946684830
updated_unix: 978307200
is_locked: false

View file

@ -0,0 +1,3 @@
-
group_id: 1000
max_index: 2

View file

@ -0,0 +1,30 @@
-
id: 1000
owner_id: 1001
owner_name: user1001
lower_name: repo1000
name: repo1000
default_branch: master
num_watches: 0
num_stars: 0
num_forks: 0
num_issues: 1
num_closed_issues: 0
num_pulls: 0
num_closed_pulls: 0
num_milestones: 0
num_closed_milestones: 0
num_projects: 0
num_closed_projects: 0
is_private: false
is_empty: false
is_archived: false
is_mirror: false
status: 0
is_fork: false
fork_id: 0
is_template: false
template_id: 0
size: 0
is_fsck_enabled: true
close_issues_via_commit_in_any_branch: false

View file

@ -0,0 +1,73 @@
-
id: 1000
lower_name: user1000
name: user1000
full_name: User Thousand
email: user1000@example.com
keep_email_private: false
email_notifications_preference: enabled
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user1000
type: 0
salt: ZogKvWdyEx
max_repo_creation: -1
is_active: true
is_admin: false
is_restricted: false
allow_git_hook: false
allow_import_local: false
allow_create_organization: true
prohibit_login: false
avatar: avatar1000
avatar_email: user1000@example.com
use_custom_avatar: false
num_followers: 1
num_following: 1
num_stars: 0
num_repos: 0
num_teams: 0
num_members: 0
visibility: 0
repo_admin_change_team_access: false
theme: ""
keep_activity_private: false
-
id: 1001
lower_name: user1001
name: user1001
full_name: User 1001
email: user1001@example.com
keep_email_private: false
email_notifications_preference: enabled
passwd: ZogKvWdyEx:password
passwd_hash_algo: dummy
must_change_password: false
login_source: 0
login_name: user1001
type: 0
salt: ZogKvWdyEx
max_repo_creation: -1
is_active: true
is_admin: false
is_restricted: false
allow_git_hook: false
allow_import_local: false
allow_create_organization: true
prohibit_login: false
avatar: avatar1001
avatar_email: user1001@example.com
use_custom_avatar: false
num_followers: 0
num_following: 0
num_stars: 0
num_repos: 1
num_teams: 0
num_members: 0
visibility: 0
repo_admin_change_team_access: false
theme: ""
keep_activity_private: false