@@ -626,7 +626,7 @@ func (repo *Repository) getReviewersPrivate(e Engine, doerID, posterID int64) (u
626626 users = make ([]* User , 0 , 20 )
627627
628628 if err = e .
629- SQL ("SELECT * FROM user WHERE id in (SELECT user_id FROM access WHERE repo_id = ? AND mode >= ? AND user_id NOT IN ( ?, ?))" ,
629+ SQL ("SELECT * FROM ` user` WHERE id in (SELECT user_id FROM ` access` WHERE repo_id = ? AND mode >= ? AND user_id NOT IN ( ?, ?)) ORDER BY name " ,
630630 repo .ID , AccessModeRead ,
631631 doerID , posterID ).
632632 Find (& users ); err != nil {
@@ -636,46 +636,21 @@ func (repo *Repository) getReviewersPrivate(e Engine, doerID, posterID int64) (u
636636 return users , nil
637637}
638638
639- func (repo * Repository ) getReviewersPublic (e Engine , doerID , posterID int64 ) (users []* User , err error ) {
639+ func (repo * Repository ) getReviewersPublic (e Engine , doerID , posterID int64 ) (_ []* User , err error ) {
640640
641- userIDs := make ([]int64 , 0 , 20 )
641+ users := make ([]* User , 0 )
642642
643- if err = e .
644- SQL ("SELECT user_id FROM access WHERE repo_id = ? AND mode >= ? AND user_id NOT IN ( ?, ?)" ,
645- repo .ID , AccessModeRead ,
646- doerID , posterID ).
647- Find (& userIDs ); err != nil {
648- return nil , err
649- }
650-
651- getNum := len (userIDs )
652-
653- watcherIDs := make ([]int64 , 0 )
654-
655- if err = e .SQL ("SELECT user_id FROM watch WHERE repo_id = ? AND user_id NOT IN ( ?, ?)" ,
656- repo .ID , doerID , posterID ).Find (& watcherIDs ); err != nil {
657- return nil , err
658- }
643+ const SQLCmd = "SELECT * FROM `user` WHERE id IN ( " +
644+ "SELECT user_id FROM `access` WHERE repo_id = ? AND mode >= ? AND user_id NOT IN ( ?, ?) " +
645+ "UNION " +
646+ "SELECT user_id FROM `watch` WHERE repo_id = ? AND user_id NOT IN ( ?, ?) AND mode IN (?, ?) " +
647+ ") ORDER BY name"
659648
660- for _ , watcherID := range watcherIDs {
661- isHave := false
662- for index , userID := range userIDs {
663- if index >= getNum {
664- break
665- }
666- if userID == watcherID {
667- isHave = true
668- break
669- }
670- }
671-
672- if ! isHave {
673- userIDs = append (userIDs , watcherID )
674- }
675- }
676-
677- users = make ([]* User , 0 , len (userIDs ))
678- if err = e .In ("id" , userIDs ).Find (& users ); err != nil {
649+ if err = e .
650+ SQL (SQLCmd ,
651+ repo .ID , AccessModeRead , doerID , posterID ,
652+ repo .ID , doerID , posterID , RepoWatchModeNormal , RepoWatchModeAuto ).
653+ Find (& users ); err != nil {
679654 return nil , err
680655 }
681656
0 commit comments