Browse Source

repo: show in search if any part is public (#5234)

if repo is private but wiki and/or issue are public show repo in search
pull/5340/head
James 7 years ago committed by 无闻
parent
commit
08ae0dd74b
  1. 4
      models/repo.go

4
models/repo.go

@ -1653,11 +1653,11 @@ func SearchRepositoryByName(opts *SearchRepoOptions) (repos []*Repository, count
// this does not include other people's private repositories even if opts.UserID is an admin. // this does not include other people's private repositories even if opts.UserID is an admin.
if !opts.Private && opts.UserID > 0 { if !opts.Private && opts.UserID > 0 {
sess.Join("LEFT", "access", "access.repo_id = repo.id"). sess.Join("LEFT", "access", "access.repo_id = repo.id").
Where("(repo.owner_id = ? OR access.user_id = ? OR repo.is_private = ?)", opts.UserID, opts.UserID, false) Where("(repo.owner_id = ? OR access.user_id = ? OR repo.is_private = ? OR (repo.is_private = ? AND (repo.allow_public_wiki = ? OR repo.allow_public_issues = ?)))", opts.UserID, opts.UserID, false, true, true, true)
} else { } else {
// Only return public repositories if opts.Private is not set // Only return public repositories if opts.Private is not set
if !opts.Private { if !opts.Private {
sess.And("repo.is_private = ?", false) sess.And("(repo.is_private = ? OR (repo.is_private = ? AND (repo.allow_public_wiki = ? OR repo.allow_public_issues = ?))", false, true, true, true)
} }
} }
if len(opts.Keyword) > 0 { if len(opts.Keyword) > 0 {

Loading…
Cancel
Save