@@ -11,7 +11,6 @@ import (
1111 "code.gitea.io/gitea/models/unit"
1212 user_model "code.gitea.io/gitea/models/user"
1313 "code.gitea.io/gitea/modules/container"
14- api "code.gitea.io/gitea/modules/structs"
1514
1615 "xorm.io/builder"
1716)
@@ -146,57 +145,6 @@ func GetRepoAssignees(ctx context.Context, repo *Repository) (_ []*user_model.Us
146145 return users , nil
147146}
148147
149- // GetReviewers get all users can be requested to review:
150- // * for private repositories this returns all users that have read access or higher to the repository.
151- // * for public repositories this returns all users that have read access or higher to the repository,
152- // all repo watchers and all organization members.
153- // TODO: may be we should have a busy choice for users to block review request to them.
154- func GetReviewers (ctx context.Context , repo * Repository , doerID , posterID int64 ) ([]* user_model.User , error ) {
155- // Get the owner of the repository - this often already pre-cached and if so saves complexity for the following queries
156- if err := repo .LoadOwner (ctx ); err != nil {
157- return nil , err
158- }
159-
160- cond := builder .And (builder.Neq {"`user`.id" : posterID }).
161- And (builder.Eq {"`user`.is_active" : true })
162-
163- if repo .IsPrivate || repo .Owner .Visibility == api .VisibleTypePrivate {
164- // This a private repository:
165- // Anyone who can read the repository is a requestable reviewer
166-
167- cond = cond .And (builder .In ("`user`.id" ,
168- builder .Select ("user_id" ).From ("access" ).Where (
169- builder.Eq {"repo_id" : repo .ID }.
170- And (builder.Gte {"mode" : perm .AccessModeRead }),
171- ),
172- ))
173-
174- if repo .Owner .Type == user_model .UserTypeIndividual && repo .Owner .ID != posterID {
175- // as private *user* repos don't generate an entry in the `access` table,
176- // the owner of a private repo needs to be explicitly added.
177- cond = cond .Or (builder.Eq {"`user`.id" : repo .Owner .ID })
178- }
179- } else {
180- // This is a "public" repository:
181- // Any user that has read access, is a watcher or organization member can be requested to review
182- cond = cond .And (builder .And (builder .In ("`user`.id" ,
183- builder .Select ("user_id" ).From ("access" ).
184- Where (builder.Eq {"repo_id" : repo .ID }.
185- And (builder.Gte {"mode" : perm .AccessModeRead })),
186- ).Or (builder .In ("`user`.id" ,
187- builder .Select ("user_id" ).From ("watch" ).
188- Where (builder.Eq {"repo_id" : repo .ID }.
189- And (builder .In ("mode" , WatchModeNormal , WatchModeAuto ))),
190- ).Or (builder .In ("`user`.id" ,
191- builder .Select ("uid" ).From ("org_user" ).
192- Where (builder.Eq {"org_id" : repo .OwnerID }),
193- )))))
194- }
195-
196- users := make ([]* user_model.User , 0 , 8 )
197- return users , db .GetEngine (ctx ).Where (cond ).OrderBy (user_model .GetOrderByName ()).Find (& users )
198- }
199-
200148// GetIssuePostersWithSearch returns users with limit of 30 whose username started with prefix that have authored an issue/pull request for the given repository
201149// If isShowFullName is set to true, also include full name prefix search
202150func GetIssuePostersWithSearch (ctx context.Context , repo * Repository , isPull bool , search string , isShowFullName bool ) ([]* user_model.User , error ) {
0 commit comments