1
0
mirror of https://github.com/go-gitea/gitea.git synced 2025-02-02 15:09:33 -05:00

fix an internal error

Team has negative ID while Users has positive.
We need to use TeamReviewRequest for teams and
ReviewRequest for a individual user.

Also, we have to validate the permissions before
send out the notification
This commit is contained in:
bb-ben 2024-11-03 16:46:12 +08:00
parent d8d66b5c91
commit 25ebf691a8

View File

@ -117,38 +117,6 @@ func NewPullRequest(ctx context.Context, repo *repo_model.Repository, issue *iss
assigneeCommentMap[assigneeID] = comment
}
for _, reviewerID := range reviewerIDs {
// negative reviewIDs represent team requests
if reviewerID < 0 {
team, err := organization.GetTeamByID(ctx, -reviewerID)
if err != nil {
return err
}
err = issue_service.IsValidTeamReviewRequest(ctx, team, issue.Poster, true, issue)
if err != nil {
return err
}
_, err = issue_service.TeamReviewRequest(ctx, issue, issue.Poster, team, true)
if err != nil {
return err
}
continue
}
reviewer, err := user_model.GetUserByID(ctx, reviewerID)
if err != nil {
return err
}
permDoer, err := access_model.GetUserRepoPermission(ctx, issue.Repo, issue.Poster)
if err != nil {
return err
}
err = issue_service.IsValidReviewRequest(ctx, reviewer, issue.Poster, true, issue, &permDoer)
if err != nil {
return err
}
}
pr.Issue = issue
issue.PullRequest = pr
@ -232,11 +200,32 @@ func NewPullRequest(ctx context.Context, repo *repo_model.Repository, issue *iss
}
for _, reviewerID := range reviewerIDs {
// negative reviewIDs represent team requests
if reviewerID < 0 {
team, err := organization.GetTeamByID(ctx, -reviewerID)
if err != nil {
return err
}
err = issue_service.IsValidTeamReviewRequest(ctx, team, issue.Poster, true, issue)
if err != nil {
return err
}
_, err = issue_service.TeamReviewRequest(ctx, issue, issue.Poster, team, true)
if err != nil {
return err
}
continue
}
reviewer, err := user_model.GetUserByID(ctx, reviewerID)
if err != nil {
return ErrDependenciesLeft
return err
}
_, err = issue_service.ReviewRequest(ctx, issue, issue.Poster, reviewer, true)
permDoer, err := access_model.GetUserRepoPermission(ctx, issue.Repo, issue.Poster)
if err != nil {
return err
}
err = issue_service.IsValidReviewRequest(ctx, reviewer, issue.Poster, true, issue, &permDoer)
if err != nil {
return err
}