diff options
author | Joe Chen <jc@unknwon.io> | 2022-10-23 21:22:36 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-23 21:22:36 +0800 |
commit | 3265abfbc22ef36871d8e69f0f9a3a4a5b40b768 (patch) | |
tree | 0079202cdf2e84f7366ba1b1b8064233721f093c /internal/route/repo/pull.go | |
parent | d0a4a3401c1c62def511df42769b13cdfba10a6a (diff) |
refactor(db): migrate perms methods off `user.go` (#7207)
Diffstat (limited to 'internal/route/repo/pull.go')
-rw-r--r-- | internal/route/repo/pull.go | 11 |
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, "", "" |