diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2025-01-27 08:25:14 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-27 16:25:14 +0000 |
commit | 77d14fb6d36d41f591ec25ed76357d741ee7f7d4 (patch) | |
tree | cca690593ea4c46842a561258827b8e20184db85 /services/repository | |
parent | dcd3014567f2b8be3fca01c20c2b3eabdc8f519e (diff) | |
download | gitea-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.go | 8 |
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 |