Fix internal sever error when visiting a PR that bound to the deleted team (#24127)
Close: #23738
The actual cause of `500 Internal Server Error` in the issue is not what
is descirbed in the issue.
The actual cause is that after deleting team, if there is a PR which has
requested reivew from the deleted team, the comment could not match with
the deleted team by `assgin_team_id`. So the value of `.AssigneeTeam`
(see below code block) is `nil` which cause `500 error`.
1c8bc4081a/templates/repo/issue/view_content/comments.tmpl (L691-L695)
To fix this bug, there are the following problems to be resolved:
- [x] 1. ~~Stroe the name of the team in `content` column when inserting
`comment` into DB in case that we cannot get the name of team after it
is deleted. But for comments that already exist, just display "Unknown
Team"~~ Just display "Ghost Team" in the comment if the assgined team is
deleted.
- [x] 2. Delete the PR&team binding (the row of which `review_team_id =
${team_id} ` in table `review`) when deleting team.
- [x] 3.For already exist and undeleted binding rows in in table
`review`, ~~we can delete these rows when executing migrations.~~ they
do not affect the function, so won't delete them.
This commit is contained in:
parent
da6e9f63df
commit
bfecf3bd89
2 changed files with 8 additions and 2 deletions
|
@ -414,6 +414,7 @@ func DeleteTeam(t *organization.Team) error {
|
||||||
&organization.TeamUser{OrgID: t.OrgID, TeamID: t.ID},
|
&organization.TeamUser{OrgID: t.OrgID, TeamID: t.ID},
|
||||||
&organization.TeamUnit{TeamID: t.ID},
|
&organization.TeamUnit{TeamID: t.ID},
|
||||||
&organization.TeamInvite{TeamID: t.ID},
|
&organization.TeamInvite{TeamID: t.ID},
|
||||||
|
&issues_model.Review{Type: issues_model.ReviewTypeRequest, ReviewerTeamID: t.ID}, // batch delete the binding relationship between team and PR (request review from team)
|
||||||
); err != nil {
|
); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
@ -688,10 +688,15 @@
|
||||||
{{$.locale.Tr "repo.issues.review.add_review_request" (.Assignee.GetDisplayName|Escape) $createdStr | Safe}}
|
{{$.locale.Tr "repo.issues.review.add_review_request" (.Assignee.GetDisplayName|Escape) $createdStr | Safe}}
|
||||||
{{end}}
|
{{end}}
|
||||||
{{else}}
|
{{else}}
|
||||||
|
<!-- If the assigned team is deleted, just displaying "Ghost Team" in the comment -->
|
||||||
|
{{$teamName := "Ghost Team"}}
|
||||||
|
{{if .AssigneeTeam}}
|
||||||
|
{{$teamName = .AssigneeTeam.Name}}
|
||||||
|
{{end}}
|
||||||
{{if .RemovedAssignee}}
|
{{if .RemovedAssignee}}
|
||||||
{{$.locale.Tr "repo.issues.review.remove_review_request" (.AssigneeTeam.Name|Escape) $createdStr | Safe}}
|
{{$.locale.Tr "repo.issues.review.remove_review_request" ($teamName|Escape) $createdStr | Safe}}
|
||||||
{{else}}
|
{{else}}
|
||||||
{{$.locale.Tr "repo.issues.review.add_review_request" (.AssigneeTeam.Name|Escape) $createdStr | Safe}}
|
{{$.locale.Tr "repo.issues.review.add_review_request" ($teamName|Escape) $createdStr | Safe}}
|
||||||
{{end}}
|
{{end}}
|
||||||
{{end}}
|
{{end}}
|
||||||
</span>
|
</span>
|
||||||
|
|
Loading…
Reference in a new issue