aboutsummaryrefslogtreecommitdiff
path: root/internal/route/repo/pull.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/route/repo/pull.go')
-rw-r--r--internal/route/repo/pull.go11
1 files changed, 10 insertions, 1 deletions
diff --git a/internal/route/repo/pull.go b/internal/route/repo/pull.go
index d65b1e10..2745c336 100644
--- a/internal/route/repo/pull.go
+++ b/internal/route/repo/pull.go
@@ -510,7 +510,16 @@ func ParseCompareInfo(c *context.Context) (*db.User, *db.Repository, *git.Reposi
headGitRepo = c.Repo.GitRepo
}
- if !c.User.IsWriterOfRepo(headRepo) && !c.User.IsAdmin {
+ if !db.Perms.Authorize(
+ c.Req.Context(),
+ c.User.ID,
+ headRepo.ID,
+ db.AccessModeWrite,
+ db.AccessModeOptions{
+ OwnerID: headRepo.OwnerID,
+ Private: headRepo.IsPrivate,
+ },
+ ) && !c.User.IsAdmin {
log.Trace("ParseCompareInfo [base_repo_id: %d]: does not have write access or site admin", baseRepo.ID)
c.NotFound()
return nil, nil, nil, nil, "", ""