aboutsummaryrefslogtreecommitdiff
path: root/internal/db/repo.go
diff options
context:
space:
mode:
authorJoe Chen <jc@unknwon.io>2022-10-23 21:22:36 +0800
committerGitHub <noreply@github.com>2022-10-23 21:22:36 +0800
commit3265abfbc22ef36871d8e69f0f9a3a4a5b40b768 (patch)
tree0079202cdf2e84f7366ba1b1b8064233721f093c /internal/db/repo.go
parentd0a4a3401c1c62def511df42769b13cdfba10a6a (diff)
refactor(db): migrate perms methods off `user.go` (#7207)
Diffstat (limited to 'internal/db/repo.go')
-rw-r--r--internal/db/repo.go13
1 files changed, 11 insertions, 2 deletions
diff --git a/internal/db/repo.go b/internal/db/repo.go
index 9f889bc2..bb2cd52e 100644
--- a/internal/db/repo.go
+++ b/internal/db/repo.go
@@ -391,8 +391,17 @@ func (repo *Repository) APIFormatLegacy(permission *api.Permission, user ...*Use
if repo.IsFork {
p := &api.Permission{Pull: true}
if len(user) != 0 {
- p.Admin = user[0].IsAdminOfRepo(repo)
- p.Push = user[0].IsWriterOfRepo(repo)
+ accessMode := Perms.AccessMode(
+ context.TODO(),
+ user[0].ID,
+ repo.ID,
+ AccessModeOptions{
+ OwnerID: repo.OwnerID,
+ Private: repo.IsPrivate,
+ },
+ )
+ p.Admin = accessMode >= AccessModeAdmin
+ p.Push = accessMode >= AccessModeWrite
}
apiRepo.Parent = repo.BaseRepo.APIFormatLegacy(p)
}