Skip to content

Commit 9520c12

Browse files
committed
fix
1 parent 1e2b185 commit 9520c12

File tree

3 files changed

+22
-53
lines changed

3 files changed

+22
-53
lines changed

modules/context/package.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ func determineAccessMode(ctx *Context) (perm.AccessMode, error) {
9797
org := organization.OrgFromUser(ctx.Package.Owner)
9898

9999
// 1. If user is logined
100-
if ctx.Doer != nil {
100+
if ctx.Doer != nil && !ctx.Doer.IsGhost() {
101101
// check every team permissions
102102
teams, err := organization.GetUserOrgTeams(ctx, org.ID, ctx.Doer.ID)
103103
if err != nil {

routers/api/packages/api.go

+21-32
Original file line numberDiff line numberDiff line change
@@ -44,35 +44,39 @@ func reqPackageAccess(accessMode perm.AccessMode) func(ctx *context.Context) {
4444
}
4545
}
4646

47-
// CommonRoutes provide endpoints for most package managers (except containers - see below)
48-
// These are mounted on `/api/packages` (not `/api/v1/packages`)
49-
func CommonRoutes(ctx gocontext.Context) *web.Route {
50-
r := web.NewRoute()
51-
52-
r.Use(context.PackageContexter(ctx))
53-
54-
authMethods := []auth.Method{
55-
&auth.OAuth2{},
56-
&auth.Basic{},
57-
&nuget.Auth{},
58-
&conan.Auth{},
59-
&chef.Auth{},
60-
}
47+
func verifyAuth(r *web.Route, authMethods []auth.Method) {
6148
if setting.Service.EnableReverseProxyAuth {
6249
authMethods = append(authMethods, &auth.ReverseProxy{})
6350
}
64-
6551
authGroup := auth.NewGroup(authMethods...)
52+
6653
r.Use(func(ctx *context.Context) {
6754
var err error
6855
ctx.Doer, err = authGroup.Verify(ctx.Req, ctx.Resp, ctx, ctx.Session)
6956
if err != nil {
70-
log.Error("Verify: %v", err)
57+
log.Error("Failed to verify user: %v", err)
7158
ctx.Error(http.StatusUnauthorized, "authGroup.Verify")
7259
return
7360
}
61+
// TODO: check ActionUser's access permission
7462
ctx.IsSigned = ctx.Doer != nil
7563
})
64+
}
65+
66+
// CommonRoutes provide endpoints for most package managers (except containers - see below)
67+
// These are mounted on `/api/packages` (not `/api/v1/packages`)
68+
func CommonRoutes(ctx gocontext.Context) *web.Route {
69+
r := web.NewRoute()
70+
71+
r.Use(context.PackageContexter(ctx))
72+
73+
verifyAuth(r, []auth.Method{
74+
&auth.OAuth2{},
75+
&auth.Basic{},
76+
&nuget.Auth{},
77+
&conan.Auth{},
78+
&chef.Auth{},
79+
})
7680

7781
r.Group("/{username}", func() {
7882
r.Group("/cargo", func() {
@@ -437,24 +441,9 @@ func ContainerRoutes(ctx gocontext.Context) *web.Route {
437441

438442
r.Use(context.PackageContexter(ctx))
439443

440-
authMethods := []auth.Method{
444+
verifyAuth(r, []auth.Method{
441445
&auth.Basic{},
442446
&container.Auth{},
443-
}
444-
if setting.Service.EnableReverseProxyAuth {
445-
authMethods = append(authMethods, &auth.ReverseProxy{})
446-
}
447-
448-
authGroup := auth.NewGroup(authMethods...)
449-
r.Use(func(ctx *context.Context) {
450-
var err error
451-
ctx.Doer, err = authGroup.Verify(ctx.Req, ctx.Resp, ctx, ctx.Session)
452-
if err != nil {
453-
log.Error("Failed to verify user: %v", err)
454-
ctx.Error(http.StatusUnauthorized, "Verify")
455-
return
456-
}
457-
ctx.IsSigned = ctx.Doer != nil
458447
})
459448

460449
r.Get("", container.ReqContainerAccess, container.DetermineSupport)

routers/api/packages/container/container.go

-20
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import (
1414
"strconv"
1515
"strings"
1616

17-
actions_model "code.gitea.io/gitea/models/actions"
1817
packages_model "code.gitea.io/gitea/models/packages"
1918
container_model "code.gitea.io/gitea/models/packages/container"
2019
user_model "code.gitea.io/gitea/models/user"
@@ -144,25 +143,6 @@ func Authenticate(ctx *context.Context) {
144143
u := ctx.Doer
145144
if u == nil {
146145
u = user_model.NewGhostUser()
147-
} else if u.IsActions() {
148-
task, err := actions_model.GetTaskByID(ctx, ctx.Data["ActionsTaskID"].(int64))
149-
if err != nil {
150-
apiError(ctx, http.StatusInternalServerError, err)
151-
return
152-
}
153-
if err := task.LoadJob(ctx); err != nil {
154-
apiError(ctx, http.StatusInternalServerError, err)
155-
return
156-
}
157-
if err := task.Job.LoadRun(ctx); err != nil {
158-
apiError(ctx, http.StatusInternalServerError, err)
159-
return
160-
}
161-
if err := task.Job.Run.LoadTriggerUser(ctx); err != nil {
162-
apiError(ctx, http.StatusInternalServerError, err)
163-
return
164-
}
165-
u = task.Job.Run.TriggerUser
166146
}
167147

168148
token, err := packages_service.CreateAuthorizationToken(u)

0 commit comments

Comments
 (0)