@@ -628,12 +628,18 @@ func CreateReviewRequests(ctx *context.APIContext) {
628628 }
629629 filteredUsers := make ([]* user_model.User , 0 , len (opts .Reviewers ))
630630 for _ , reviewer := range opts .Reviewers {
631+ found := false
631632 for _ , allowedUser := range allowedUsers {
632633 if allowedUser .Name == reviewer || allowedUser .Email == reviewer {
633634 filteredUsers = append (filteredUsers , allowedUser )
635+ found = true
634636 break
635637 }
636638 }
639+ if ! found {
640+ ctx .Error (http .StatusUnprocessableEntity , "" , "" )
641+ return
642+ }
637643 }
638644
639645 filteredTeams := make ([]* organization.Team , 0 , len (opts .TeamReviewers ))
@@ -644,12 +650,18 @@ func CreateReviewRequests(ctx *context.APIContext) {
644650 return
645651 }
646652 for _ , teamReviewer := range opts .TeamReviewers {
653+ found := false
647654 for _ , allowedTeam := range allowedTeams {
648655 if allowedTeam .Name == teamReviewer {
649656 filteredTeams = append (filteredTeams , allowedTeam )
657+ found = true
650658 break
651659 }
652660 }
661+ if ! found {
662+ ctx .Error (http .StatusUnprocessableEntity , "" , "" )
663+ return
664+ }
653665 }
654666 }
655667 comments , err := pull_service .ReviewRequests (ctx , pr , ctx .Doer , filteredUsers , filteredTeams )
@@ -727,45 +739,32 @@ func DeleteReviewRequests(ctx *context.APIContext) {
727739 deleteReviewRequests (ctx , * opts )
728740}
729741
730- func parseReviewersByNames (ctx * context.APIContext , reviewerNames , teamReviewerNames []string ) (reviewers []* user_model.User , teamReviewers []* organization.Team ) {
731- var err error
742+ func parseReviewersByNames (ctx * context.APIContext , reviewerNames , teamReviewerNames []string ) (reviewers []* user_model.User , teamReviewers []* organization.Team , err error ) {
732743 for _ , r := range reviewerNames {
733744 var reviewer * user_model.User
734745 if strings .Contains (r , "@" ) {
735746 reviewer , err = user_model .GetUserByEmail (ctx , r )
736747 } else {
737748 reviewer , err = user_model .GetUserByName (ctx , r )
738749 }
739-
740750 if err != nil {
741- if user_model .IsErrUserNotExist (err ) {
742- ctx .NotFound ("UserNotExist" , fmt .Sprintf ("User '%s' not exist" , r ))
743- return nil , nil
744- }
745- ctx .Error (http .StatusInternalServerError , "GetUser" , err )
746- return nil , nil
751+ return nil , nil , err
747752 }
748753
749754 reviewers = append (reviewers , reviewer )
750755 }
751756
752757 if ctx .Repo .Repository .Owner .IsOrganization () && len (teamReviewerNames ) > 0 {
753758 for _ , t := range teamReviewerNames {
754- var teamReviewer * organization.Team
755- teamReviewer , err = organization .GetTeam (ctx , ctx .Repo .Owner .ID , t )
759+ teamReviewer , err := organization .GetTeam (ctx , ctx .Repo .Owner .ID , t )
756760 if err != nil {
757- if organization .IsErrTeamNotExist (err ) {
758- ctx .NotFound ("TeamNotExist" , fmt .Sprintf ("Team '%s' not exist" , t ))
759- return nil , nil
760- }
761- ctx .Error (http .StatusInternalServerError , "ReviewRequest" , err )
762- return nil , nil
761+ return nil , nil , err
763762 }
764763
765764 teamReviewers = append (teamReviewers , teamReviewer )
766765 }
767766 }
768- return reviewers , teamReviewers
767+ return reviewers , teamReviewers , nil
769768}
770769
771770func deleteReviewRequests (ctx * context.APIContext , opts api.PullReviewRequestOptions ) {
@@ -790,8 +789,16 @@ func deleteReviewRequests(ctx *context.APIContext, opts api.PullReviewRequestOpt
790789 return
791790 }
792791
793- reviewers , teamReviewers := parseReviewersByNames (ctx , opts .Reviewers , opts .TeamReviewers )
794- if ctx .Written () {
792+ reviewers , teamReviewers , err := parseReviewersByNames (ctx , opts .Reviewers , opts .TeamReviewers )
793+ switch {
794+ case user_model .IsErrUserNotExist (err ):
795+ ctx .NotFound ("UserNotExist" , fmt .Sprintf ("User '%s' not exist" , err .(user_model.ErrUserNotExist ).Name ))
796+ return
797+ case organization .IsErrTeamNotExist (err ):
798+ ctx .NotFound ("TeamNotExist" , fmt .Sprintf ("Team '%s' not exist" , err .(organization.ErrTeamNotExist ).Name ))
799+ return
800+ case err != nil :
801+ ctx .Error (http .StatusInternalServerError , "GetUser" , err )
795802 return
796803 }
797804
0 commit comments