Skip to content

Commit 6ea7c0a

Browse files
committed
Always set userID on LFS authentication
Fix go-gitea#5478 Fix go-gitea#7219
1 parent 7697a28 commit 6ea7c0a

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

cmd/serv.go

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -217,10 +217,11 @@ func runServ(c *cli.Context) error {
217217

218218
// Allow anonymous clone for public repositories.
219219
var (
220-
keyID int64
221-
user *models.User
220+
keyID int64
221+
user *models.User
222+
userID int64
222223
)
223-
if requestedMode == models.AccessModeWrite || repo.IsPrivate || setting.Service.RequireSignInView {
224+
if requestedMode == models.AccessModeWrite || repo.IsPrivate || setting.Service.RequireSignInView || verb == lfsAuthenticateVerb {
224225
keys := strings.Split(c.Args()[0], "-")
225226
if len(keys) != 2 {
226227
fail("Key ID format error", "Invalid key argument: %s", c.Args()[0])
@@ -258,6 +259,7 @@ func runServ(c *cli.Context) error {
258259
// so for now use the owner
259260
os.Setenv(models.EnvPusherName, username)
260261
os.Setenv(models.EnvPusherID, fmt.Sprintf("%d", repo.OwnerID))
262+
userID = repo.OwnerID
261263
} else {
262264
user, err = private.GetUserByKeyID(key.ID)
263265
if err != nil {
@@ -285,6 +287,7 @@ func runServ(c *cli.Context) error {
285287

286288
os.Setenv(models.EnvPusherName, user.Name)
287289
os.Setenv(models.EnvPusherID, fmt.Sprintf("%d", user.ID))
290+
userID = user.ID
288291
}
289292
}
290293

@@ -299,8 +302,8 @@ func runServ(c *cli.Context) error {
299302
"exp": now.Add(setting.LFS.HTTPAuthExpiry).Unix(),
300303
"nbf": now.Unix(),
301304
}
302-
if user != nil {
303-
claims["user"] = user.ID
305+
if userID > 0 {
306+
claims["user"] = userID
304307
}
305308
token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
306309

0 commit comments

Comments
 (0)