|
|
|
@ -131,7 +131,7 @@ func HTTP(ctx *middleware.Context) { |
|
|
|
|
} |
|
|
|
|
authUser, err = models.GetUserByID(token.UID) |
|
|
|
|
if err != nil { |
|
|
|
|
ctx.Handle(500, "GetUserById", err) |
|
|
|
|
ctx.Handle(500, "GetUserByID", err) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
authUsername = authUser.Name |
|
|
|
@ -145,23 +145,26 @@ func HTTP(ctx *middleware.Context) { |
|
|
|
|
|
|
|
|
|
has, err := models.HasAccess(authUser, repo, tp) |
|
|
|
|
if err != nil { |
|
|
|
|
ctx.HandleText(401, "no basic auth and digit auth") |
|
|
|
|
ctx.Handle(500, "HasAccess", err) |
|
|
|
|
return |
|
|
|
|
} else if !has { |
|
|
|
|
if tp == models.ACCESS_MODE_READ { |
|
|
|
|
has, err = models.HasAccess(authUser, repo, models.ACCESS_MODE_WRITE) |
|
|
|
|
if err != nil || !has { |
|
|
|
|
ctx.HandleText(401, "no basic auth and digit auth") |
|
|
|
|
if err != nil { |
|
|
|
|
ctx.Handle(500, "HasAccess2", err) |
|
|
|
|
return |
|
|
|
|
} else if !has { |
|
|
|
|
ctx.HandleText(403, "User permission denied") |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
ctx.HandleText(401, "no basic auth and digit auth") |
|
|
|
|
ctx.HandleText(403, "User permission denied") |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if !isPull && repo.IsMirror { |
|
|
|
|
ctx.HandleText(401, "mirror repository is read-only") |
|
|
|
|
ctx.HandleText(403, "mirror repository is read-only") |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|