mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-25 10:42:40 +01:00
[MODERATION] Purge issues on user deletion (squash)
(cherry picked from commit4f529d9596
) (cherry picked from commitf0e3acadd3
) (cherry picked from commit682c4effe6
) (cherry picked from commite43c2d84fd
) (cherry picked from commit9c8e53ccc7
)
This commit is contained in:
parent
3f0b3b6cc5
commit
a9eb7ac783
8 changed files with 134 additions and 22 deletions
|
@ -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
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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{})
|
||||||
}
|
}
|
||||||
|
|
16
tests/integration/fixtures/TestAdminDeleteUser/issue.yml
Normal file
16
tests/integration/fixtures/TestAdminDeleteUser/issue.yml
Normal 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
|
|
@ -0,0 +1,3 @@
|
||||||
|
-
|
||||||
|
group_id: 1000
|
||||||
|
max_index: 2
|
|
@ -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
|
73
tests/integration/fixtures/TestAdminDeleteUser/user.yml
Normal file
73
tests/integration/fixtures/TestAdminDeleteUser/user.yml
Normal 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
|
Loading…
Reference in a new issue