From 3265abfbc22ef36871d8e69f0f9a3a4a5b40b768 Mon Sep 17 00:00:00 2001 From: Joe Chen Date: Sun, 23 Oct 2022 21:22:36 +0800 Subject: refactor(db): migrate perms methods off `user.go` (#7207) --- internal/route/api/v1/repo/repo.go | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'internal/route/api') 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) -- cgit v1.2.3