@@ -628,12 +628,18 @@ func CreateReviewRequests(ctx *context.APIContext) {
628
628
}
629
629
filteredUsers := make ([]* user_model.User , 0 , len (opts .Reviewers ))
630
630
for _ , reviewer := range opts .Reviewers {
631
+ found := false
631
632
for _ , allowedUser := range allowedUsers {
632
633
if allowedUser .Name == reviewer || allowedUser .Email == reviewer {
633
634
filteredUsers = append (filteredUsers , allowedUser )
635
+ found = true
634
636
break
635
637
}
636
638
}
639
+ if ! found {
640
+ ctx .Error (http .StatusUnprocessableEntity , "" , "" )
641
+ return
642
+ }
637
643
}
638
644
639
645
filteredTeams := make ([]* organization.Team , 0 , len (opts .TeamReviewers ))
@@ -644,12 +650,18 @@ func CreateReviewRequests(ctx *context.APIContext) {
644
650
return
645
651
}
646
652
for _ , teamReviewer := range opts .TeamReviewers {
653
+ found := false
647
654
for _ , allowedTeam := range allowedTeams {
648
655
if allowedTeam .Name == teamReviewer {
649
656
filteredTeams = append (filteredTeams , allowedTeam )
657
+ found = true
650
658
break
651
659
}
652
660
}
661
+ if ! found {
662
+ ctx .Error (http .StatusUnprocessableEntity , "" , "" )
663
+ return
664
+ }
653
665
}
654
666
}
655
667
comments , err := pull_service .ReviewRequests (ctx , pr , ctx .Doer , filteredUsers , filteredTeams )
@@ -727,45 +739,32 @@ func DeleteReviewRequests(ctx *context.APIContext) {
727
739
deleteReviewRequests (ctx , * opts )
728
740
}
729
741
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 ) {
732
743
for _ , r := range reviewerNames {
733
744
var reviewer * user_model.User
734
745
if strings .Contains (r , "@" ) {
735
746
reviewer , err = user_model .GetUserByEmail (ctx , r )
736
747
} else {
737
748
reviewer , err = user_model .GetUserByName (ctx , r )
738
749
}
739
-
740
750
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
747
752
}
748
753
749
754
reviewers = append (reviewers , reviewer )
750
755
}
751
756
752
757
if ctx .Repo .Repository .Owner .IsOrganization () && len (teamReviewerNames ) > 0 {
753
758
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 )
756
760
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
763
762
}
764
763
765
764
teamReviewers = append (teamReviewers , teamReviewer )
766
765
}
767
766
}
768
- return reviewers , teamReviewers
767
+ return reviewers , teamReviewers , nil
769
768
}
770
769
771
770
func deleteReviewRequests (ctx * context.APIContext , opts api.PullReviewRequestOptions ) {
@@ -790,8 +789,16 @@ func deleteReviewRequests(ctx *context.APIContext, opts api.PullReviewRequestOpt
790
789
return
791
790
}
792
791
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 )
795
802
return
796
803
}
797
804
0 commit comments