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/api/v1/repo | |
parent | d0a4a3401c1c62def511df42769b13cdfba10a6a (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.go | 23 |
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) |