Allow poster to choose reviewers (#21084)
Allow the poster of a PR to choose reviewers (add only). Solve #20746
This commit is contained in:
		
							parent
							
								
									b5d21c0adf
								
							
						
					
					
						commit
						831e981357
					
				|  | @ -1336,11 +1336,16 @@ func ViewIssue(ctx *context.Context) { | |||
| 
 | ||||
| 	if issue.IsPull { | ||||
| 		canChooseReviewer := ctx.Repo.CanWrite(unit.TypePullRequests) | ||||
| 		if !canChooseReviewer && ctx.Doer != nil && ctx.IsSigned { | ||||
| 			canChooseReviewer, err = issues_model.IsOfficialReviewer(ctx, issue, ctx.Doer) | ||||
| 			if err != nil { | ||||
| 				ctx.ServerError("IsOfficialReviewer", err) | ||||
| 				return | ||||
| 		if ctx.Doer != nil && ctx.IsSigned { | ||||
| 			if !canChooseReviewer { | ||||
| 				canChooseReviewer = ctx.Doer.ID == issue.PosterID | ||||
| 			} | ||||
| 			if !canChooseReviewer { | ||||
| 				canChooseReviewer, err = issues_model.IsOfficialReviewer(ctx, issue, ctx.Doer) | ||||
| 				if err != nil { | ||||
| 					ctx.ServerError("IsOfficialReviewer", err) | ||||
| 					return | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 
 | ||||
|  |  | |||
|  | @ -131,7 +131,10 @@ func IsValidReviewRequest(ctx context.Context, reviewer, doer *user_model.User, | |||
| 			return nil | ||||
| 		} | ||||
| 
 | ||||
| 		pemResult = permDoer.CanAccessAny(perm.AccessModeWrite, unit.TypePullRequests) | ||||
| 		pemResult = doer.ID == issue.PosterID | ||||
| 		if !pemResult { | ||||
| 			pemResult = permDoer.CanAccessAny(perm.AccessModeWrite, unit.TypePullRequests) | ||||
| 		} | ||||
| 		if !pemResult { | ||||
| 			pemResult, err = issues_model.IsOfficialReviewer(ctx, issue, doer) | ||||
| 			if err != nil { | ||||
|  | @ -201,7 +204,7 @@ func IsValidTeamReviewRequest(ctx context.Context, reviewer *organization.Team, | |||
| 		} | ||||
| 
 | ||||
| 		doerCanWrite := permission.CanAccessAny(perm.AccessModeWrite, unit.TypePullRequests) | ||||
| 		if !doerCanWrite { | ||||
| 		if !doerCanWrite && doer.ID != issue.PosterID { | ||||
| 			official, err := issues_model.IsOfficialReviewer(ctx, issue, doer) | ||||
| 			if err != nil { | ||||
| 				log.Error("Unable to Check if IsOfficialReviewer for %-v in %-v#%d", doer, issue.Repo, issue.Index) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue