aboutsummaryrefslogtreecommitdiffstats
path: root/services/repository
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2025-01-27 08:25:14 -0800
committerGitHub <noreply@github.com>2025-01-27 16:25:14 +0000
commit77d14fb6d36d41f591ec25ed76357d741ee7f7d4 (patch)
treecca690593ea4c46842a561258827b8e20184db85 /services/repository
parentdcd3014567f2b8be3fca01c20c2b3eabdc8f519e (diff)
downloadgitea-77d14fb6d36d41f591ec25ed76357d741ee7f7d4.tar.gz
gitea-77d14fb6d36d41f591ec25ed76357d741ee7f7d4.zip
Fix system admin cannot fork or get private fork with API (#33401)
Fix #33368
Diffstat (limited to 'services/repository')
-rw-r--r--services/repository/fork.go8
1 files changed, 5 insertions, 3 deletions
diff --git a/services/repository/fork.go b/services/repository/fork.go
index cff0b1a403..8d89c2b0b0 100644
--- a/services/repository/fork.go
+++ b/services/repository/fork.go
@@ -256,9 +256,11 @@ type findForksOptions struct {
}
func (opts findForksOptions) ToConds() builder.Cond {
- return builder.Eq{"fork_id": opts.RepoID}.And(
- repo_model.AccessibleRepositoryCondition(opts.Doer, unit.TypeInvalid),
- )
+ cond := builder.Eq{"fork_id": opts.RepoID}
+ if opts.Doer != nil && opts.Doer.IsAdmin {
+ return cond
+ }
+ return cond.And(repo_model.AccessibleRepositoryCondition(opts.Doer, unit.TypeInvalid))
}
// FindForks returns all the forks of the repository