aboutsummaryrefslogtreecommitdiff
path: root/internal/route/api/v1/repo
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/route/api/v1/repo
parentd0a4a3401c1c62def511df42769b13cdfba10a6a (diff)
refactor(db): migrate perms methods off `user.go` (#7207)
Diffstat (limited to 'internal/route/api/v1/repo')
-rw-r--r--internal/route/api/v1/repo/repo.go23
1 files changed, 18 insertions, 5 deletions
diff --git a/internal/route/api/v1/repo/repo.go b/internal/route/api/v1/repo/repo.go
index e26cc5bd..81341627 100644
--- a/internal/route/api/v1/repo/repo.go
+++ b/internal/route/api/v1/repo/repo.go
@@ -352,11 +352,24 @@ func ListForks(c *context.APIContext) {
c.Error(err, "get owner")
return
}
- apiForks[i] = forks[i].APIFormatLegacy(&api.Permission{
- Admin: c.User.IsAdminOfRepo(forks[i]),
- Push: c.User.IsWriterOfRepo(forks[i]),
- Pull: true,
- })
+
+ accessMode := db.Perms.AccessMode(
+ c.Req.Context(),
+ c.User.ID,
+ forks[i].ID,
+ db.AccessModeOptions{
+ OwnerID: forks[i].OwnerID,
+ Private: forks[i].IsPrivate,
+ },
+ )
+
+ apiForks[i] = forks[i].APIFormatLegacy(
+ &api.Permission{
+ Admin: accessMode >= db.AccessModeAdmin,
+ Push: accessMode >= db.AccessModeWrite,
+ Pull: true,
+ },
+ )
}
c.JSONSuccess(&apiForks)