aboutsummaryrefslogtreecommitdiff
path: root/models
diff options
context:
space:
mode:
authorJames <james_g_k@hotmail.co.uk>2018-06-16 09:34:55 +0100
committer无闻 <u@gogs.io>2018-06-16 16:34:55 +0800
commit08ae0dd74be0e35753c2ac6cbf3196f5bfd18b58 (patch)
treee9e56718bf661538964780105a8ed3e395cd0a9c /models
parent93f3a7f96a1bc99ba17f02c5fb8e2e5b21671c3c (diff)
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
Diffstat (limited to 'models')
-rw-r--r--models/repo.go4
1 files changed, 2 insertions, 2 deletions
diff --git a/models/repo.go b/models/repo.go
index 58bc8da8..3efb3635 100644
--- a/models/repo.go
+++ b/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.
if !opts.Private && opts.UserID > 0 {
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 {
// Only return public repositories if opts.Private is not set
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 {