aboutsummaryrefslogtreecommitdiff
path: root/internal/route
diff options
context:
space:
mode:
Diffstat (limited to 'internal/route')
-rw-r--r--internal/route/api/v1/api.go2
-rw-r--r--internal/route/lfs/route.go2
-rw-r--r--internal/route/lfs/route_test.go24
-rw-r--r--internal/route/repo/http.go2
4 files changed, 19 insertions, 11 deletions
diff --git a/internal/route/api/v1/api.go b/internal/route/api/v1/api.go
index 62c933ad..9d256e3e 100644
--- a/internal/route/api/v1/api.go
+++ b/internal/route/api/v1/api.go
@@ -57,7 +57,7 @@ func repoAssignment() macaron.Handler {
if c.IsTokenAuth && c.User.IsAdmin {
c.Repo.AccessMode = db.AccessModeOwner
} else {
- c.Repo.AccessMode = db.Perms.AccessMode(c.UserID(), repo.ID,
+ c.Repo.AccessMode = db.Perms.AccessMode(c.Req.Context(), c.UserID(), repo.ID,
db.AccessModeOptions{
OwnerID: repo.OwnerID,
Private: repo.IsPrivate,
diff --git a/internal/route/lfs/route.go b/internal/route/lfs/route.go
index 23ece92b..f5195837 100644
--- a/internal/route/lfs/route.go
+++ b/internal/route/lfs/route.go
@@ -130,7 +130,7 @@ func authorize(mode db.AccessMode) macaron.Handler {
return
}
- if !db.Perms.Authorize(actor.ID, repo.ID, mode,
+ if !db.Perms.Authorize(c.Req.Context(), actor.ID, repo.ID, mode,
db.AccessModeOptions{
OwnerID: repo.OwnerID,
Private: repo.IsPrivate,
diff --git a/internal/route/lfs/route_test.go b/internal/route/lfs/route_test.go
index a07121cc..57d0728f 100644
--- a/internal/route/lfs/route_test.go
+++ b/internal/route/lfs/route_test.go
@@ -5,6 +5,7 @@
package lfs
import (
+ "context"
"fmt"
"io/ioutil"
"net/http"
@@ -166,7 +167,7 @@ func Test_authorize(t *testing.T) {
authroize macaron.Handler
mockUsersStore *db.MockUsersStore
mockReposStore *db.MockReposStore
- mockPermsStore *db.MockPermsStore
+ mockPermsStore func() db.PermsStore
expStatusCode int
expBody string
}{
@@ -208,10 +209,12 @@ func Test_authorize(t *testing.T) {
return &db.Repository{Name: name}, nil
},
},
- mockPermsStore: &db.MockPermsStore{
- MockAuthorize: func(userID, repoID int64, desired db.AccessMode, opts db.AccessModeOptions) bool {
+ mockPermsStore: func() db.PermsStore {
+ mock := db.NewMockPermsStore()
+ mock.AuthorizeFunc.SetDefaultHook(func(ctx context.Context, userID int64, repoID int64, desired db.AccessMode, opts db.AccessModeOptions) bool {
return desired <= db.AccessModeRead
- },
+ })
+ return mock
},
expStatusCode: http.StatusNotFound,
},
@@ -229,10 +232,12 @@ func Test_authorize(t *testing.T) {
return &db.Repository{Name: name}, nil
},
},
- mockPermsStore: &db.MockPermsStore{
- MockAuthorize: func(userID, repoID int64, desired db.AccessMode, opts db.AccessModeOptions) bool {
+ mockPermsStore: func() db.PermsStore {
+ mock := db.NewMockPermsStore()
+ mock.AuthorizeFunc.SetDefaultHook(func(ctx context.Context, userID int64, repoID int64, desired db.AccessMode, opts db.AccessModeOptions) bool {
return desired <= db.AccessModeRead
- },
+ })
+ return mock
},
expStatusCode: http.StatusOK,
expBody: "owner.Name: owner, repo.Name: repo",
@@ -242,7 +247,10 @@ func Test_authorize(t *testing.T) {
t.Run(test.name, func(t *testing.T) {
db.SetMockUsersStore(t, test.mockUsersStore)
db.SetMockReposStore(t, test.mockReposStore)
- db.SetMockPermsStore(t, test.mockPermsStore)
+
+ if test.mockPermsStore != nil {
+ db.SetMockPermsStore(t, test.mockPermsStore())
+ }
m := macaron.New()
m.Use(macaron.Renderer())
diff --git a/internal/route/repo/http.go b/internal/route/repo/http.go
index 0d6632be..7e970194 100644
--- a/internal/route/repo/http.go
+++ b/internal/route/repo/http.go
@@ -166,7 +166,7 @@ Please create and use personal access token on user settings page`)
if isPull {
mode = db.AccessModeRead
}
- if !db.Perms.Authorize(authUser.ID, repo.ID, mode,
+ if !db.Perms.Authorize(c.Req.Context(), authUser.ID, repo.ID, mode,
db.AccessModeOptions{
OwnerID: repo.OwnerID,
Private: repo.IsPrivate,