diff --git a/models/repo/repo_list.go b/models/repo/repo_list.go index 54f9cff007..5f56e43270 100644 --- a/models/repo/repo_list.go +++ b/models/repo/repo_list.go @@ -186,6 +186,8 @@ type SearchRepoOptions struct { // - Don't show forks, when opts.Fork is OptionalBoolNone. // - Do not display repositories that don't have a description, an icon and topics. OnlyShowRelevant bool + // Filters repositories based upon optional authorization restrictions. + AuthorizationReducer RepositoryAuthorizationReducer } // UserOwnedRepoCond returns user ownered repositories @@ -518,6 +520,10 @@ func SearchRepositoryCondition(opts *SearchRepoOptions) builder.Cond { cond = cond.And(subQueryCond) } + if opts.AuthorizationReducer != nil { + cond = cond.And(opts.AuthorizationReducer.RepoReadAccessFilter()) + } + return cond }