[MODERATION] Purge issues on user deletion (squash)

(cherry picked from commit 4f529d9596ffbfc4e754c28830ba028f6344dc5b)
(cherry picked from commit f0e3acadd321fcb99e8ea3e3ce1c69df25c4ca4d)
(cherry picked from commit 682c4effe69dc0d4ed304fa7ce6259d9ce573629)
(cherry picked from commit e43c2d84fd4b6fd31e2370cec1034262d12e5c34)
(cherry picked from commit 9c8e53ccc78053026e4f667889959c23c8d95934)
This commit is contained in:
Earl Warren 2023-10-01 18:40:58 +02:00
parent 3f0b3b6cc5
commit a9eb7ac783
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