mirror of
https://github.com/go-gitea/gitea
synced 2025-07-22 18:28:37 +00:00
refactor some functions to support ctx as first parameter (#21878)
Co-authored-by: KN4CK3R <admin@oldschoolhack.me> Co-authored-by: Lauris BH <lauris@nix.lv>
This commit is contained in:
@@ -39,7 +39,7 @@ func handleLockListOut(ctx *context.Context, repo *repo_model.Repository, lock *
|
||||
return
|
||||
}
|
||||
ctx.JSON(http.StatusOK, api.LFSLockList{
|
||||
Locks: []*api.LFSLock{convert.ToLFSLock(lock)},
|
||||
Locks: []*api.LFSLock{convert.ToLFSLock(ctx, lock)},
|
||||
})
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ func handleLockListOut(ctx *context.Context, repo *repo_model.Repository, lock *
|
||||
func GetListLockHandler(ctx *context.Context) {
|
||||
rv := getRequestContext(ctx)
|
||||
|
||||
repository, err := repo_model.GetRepositoryByOwnerAndName(rv.User, rv.Repo)
|
||||
repository, err := repo_model.GetRepositoryByOwnerAndName(ctx, rv.User, rv.Repo)
|
||||
if err != nil {
|
||||
log.Debug("Could not find repository: %s/%s - %s", rv.User, rv.Repo, err)
|
||||
ctx.Resp.Header().Set("WWW-Authenticate", "Basic realm=gitea-lfs")
|
||||
@@ -117,7 +117,7 @@ func GetListLockHandler(ctx *context.Context) {
|
||||
lockListAPI := make([]*api.LFSLock, len(lockList))
|
||||
next := ""
|
||||
for i, l := range lockList {
|
||||
lockListAPI[i] = convert.ToLFSLock(l)
|
||||
lockListAPI[i] = convert.ToLFSLock(ctx, l)
|
||||
}
|
||||
if limit > 0 && len(lockList) == limit {
|
||||
next = strconv.Itoa(cursor + 1)
|
||||
@@ -134,7 +134,7 @@ func PostLockHandler(ctx *context.Context) {
|
||||
repoName := strings.TrimSuffix(ctx.Params("reponame"), ".git")
|
||||
authorization := ctx.Req.Header.Get("Authorization")
|
||||
|
||||
repository, err := repo_model.GetRepositoryByOwnerAndName(userName, repoName)
|
||||
repository, err := repo_model.GetRepositoryByOwnerAndName(ctx, userName, repoName)
|
||||
if err != nil {
|
||||
log.Error("Unable to get repository: %s/%s Error: %v", userName, repoName, err)
|
||||
ctx.Resp.Header().Set("WWW-Authenticate", "Basic realm=gitea-lfs")
|
||||
@@ -174,7 +174,7 @@ func PostLockHandler(ctx *context.Context) {
|
||||
if err != nil {
|
||||
if git_model.IsErrLFSLockAlreadyExist(err) {
|
||||
ctx.JSON(http.StatusConflict, api.LFSLockError{
|
||||
Lock: convert.ToLFSLock(lock),
|
||||
Lock: convert.ToLFSLock(ctx, lock),
|
||||
Message: "already created lock",
|
||||
})
|
||||
return
|
||||
@@ -192,7 +192,7 @@ func PostLockHandler(ctx *context.Context) {
|
||||
})
|
||||
return
|
||||
}
|
||||
ctx.JSON(http.StatusCreated, api.LFSLockResponse{Lock: convert.ToLFSLock(lock)})
|
||||
ctx.JSON(http.StatusCreated, api.LFSLockResponse{Lock: convert.ToLFSLock(ctx, lock)})
|
||||
}
|
||||
|
||||
// VerifyLockHandler list locks for verification
|
||||
@@ -201,7 +201,7 @@ func VerifyLockHandler(ctx *context.Context) {
|
||||
repoName := strings.TrimSuffix(ctx.Params("reponame"), ".git")
|
||||
authorization := ctx.Req.Header.Get("Authorization")
|
||||
|
||||
repository, err := repo_model.GetRepositoryByOwnerAndName(userName, repoName)
|
||||
repository, err := repo_model.GetRepositoryByOwnerAndName(ctx, userName, repoName)
|
||||
if err != nil {
|
||||
log.Error("Unable to get repository: %s/%s Error: %v", userName, repoName, err)
|
||||
ctx.Resp.Header().Set("WWW-Authenticate", "Basic realm=gitea-lfs")
|
||||
@@ -249,9 +249,9 @@ func VerifyLockHandler(ctx *context.Context) {
|
||||
lockTheirsListAPI := make([]*api.LFSLock, 0, len(lockList))
|
||||
for _, l := range lockList {
|
||||
if l.OwnerID == ctx.Doer.ID {
|
||||
lockOursListAPI = append(lockOursListAPI, convert.ToLFSLock(l))
|
||||
lockOursListAPI = append(lockOursListAPI, convert.ToLFSLock(ctx, l))
|
||||
} else {
|
||||
lockTheirsListAPI = append(lockTheirsListAPI, convert.ToLFSLock(l))
|
||||
lockTheirsListAPI = append(lockTheirsListAPI, convert.ToLFSLock(ctx, l))
|
||||
}
|
||||
}
|
||||
ctx.JSON(http.StatusOK, api.LFSLockListVerify{
|
||||
@@ -267,7 +267,7 @@ func UnLockHandler(ctx *context.Context) {
|
||||
repoName := strings.TrimSuffix(ctx.Params("reponame"), ".git")
|
||||
authorization := ctx.Req.Header.Get("Authorization")
|
||||
|
||||
repository, err := repo_model.GetRepositoryByOwnerAndName(userName, repoName)
|
||||
repository, err := repo_model.GetRepositoryByOwnerAndName(ctx, userName, repoName)
|
||||
if err != nil {
|
||||
log.Error("Unable to get repository: %s/%s Error: %v", userName, repoName, err)
|
||||
ctx.Resp.Header().Set("WWW-Authenticate", "Basic realm=gitea-lfs")
|
||||
@@ -315,5 +315,5 @@ func UnLockHandler(ctx *context.Context) {
|
||||
})
|
||||
return
|
||||
}
|
||||
ctx.JSON(http.StatusOK, api.LFSLockResponse{Lock: convert.ToLFSLock(lock)})
|
||||
ctx.JSON(http.StatusOK, api.LFSLockResponse{Lock: convert.ToLFSLock(ctx, lock)})
|
||||
}
|
||||
|
@@ -4,6 +4,7 @@
|
||||
package lfs
|
||||
|
||||
import (
|
||||
stdCtx "context"
|
||||
"crypto/sha256"
|
||||
"encoding/base64"
|
||||
"encoding/hex"
|
||||
@@ -408,7 +409,7 @@ func getAuthenticatedMeta(ctx *context.Context, rc *requestContext, p lfs_module
|
||||
}
|
||||
|
||||
func getAuthenticatedRepository(ctx *context.Context, rc *requestContext, requireWrite bool) *repo_model.Repository {
|
||||
repository, err := repo_model.GetRepositoryByOwnerAndName(rc.User, rc.Repo)
|
||||
repository, err := repo_model.GetRepositoryByOwnerAndName(ctx, rc.User, rc.Repo)
|
||||
if err != nil {
|
||||
log.Error("Unable to get repository: %s/%s Error: %v", rc.User, rc.Repo, err)
|
||||
writeStatus(ctx, http.StatusNotFound)
|
||||
@@ -506,7 +507,7 @@ func authenticate(ctx *context.Context, repository *repo_model.Repository, autho
|
||||
return true
|
||||
}
|
||||
|
||||
user, err := parseToken(authorization, repository, accessMode)
|
||||
user, err := parseToken(ctx, authorization, repository, accessMode)
|
||||
if err != nil {
|
||||
// Most of these are Warn level - the true internal server errors are logged in parseToken already
|
||||
log.Warn("Authentication failure for provided token with Error: %v", err)
|
||||
@@ -516,7 +517,7 @@ func authenticate(ctx *context.Context, repository *repo_model.Repository, autho
|
||||
return true
|
||||
}
|
||||
|
||||
func handleLFSToken(tokenSHA string, target *repo_model.Repository, mode perm.AccessMode) (*user_model.User, error) {
|
||||
func handleLFSToken(ctx stdCtx.Context, tokenSHA string, target *repo_model.Repository, mode perm.AccessMode) (*user_model.User, error) {
|
||||
if !strings.Contains(tokenSHA, ".") {
|
||||
return nil, nil
|
||||
}
|
||||
@@ -543,7 +544,7 @@ func handleLFSToken(tokenSHA string, target *repo_model.Repository, mode perm.Ac
|
||||
return nil, fmt.Errorf("invalid token claim")
|
||||
}
|
||||
|
||||
u, err := user_model.GetUserByID(claims.UserID)
|
||||
u, err := user_model.GetUserByID(ctx, claims.UserID)
|
||||
if err != nil {
|
||||
log.Error("Unable to GetUserById[%d]: Error: %v", claims.UserID, err)
|
||||
return nil, err
|
||||
@@ -551,7 +552,7 @@ func handleLFSToken(tokenSHA string, target *repo_model.Repository, mode perm.Ac
|
||||
return u, nil
|
||||
}
|
||||
|
||||
func parseToken(authorization string, target *repo_model.Repository, mode perm.AccessMode) (*user_model.User, error) {
|
||||
func parseToken(ctx stdCtx.Context, authorization string, target *repo_model.Repository, mode perm.AccessMode) (*user_model.User, error) {
|
||||
if authorization == "" {
|
||||
return nil, fmt.Errorf("no token")
|
||||
}
|
||||
@@ -565,7 +566,7 @@ func parseToken(authorization string, target *repo_model.Repository, mode perm.A
|
||||
case "bearer":
|
||||
fallthrough
|
||||
case "token":
|
||||
return handleLFSToken(tokenSHA, target, mode)
|
||||
return handleLFSToken(ctx, tokenSHA, target, mode)
|
||||
}
|
||||
return nil, fmt.Errorf("token not found")
|
||||
}
|
||||
|
Reference in New Issue
Block a user