Set Content-Type to text/plain for http status 401
This is because git command line shows the failure reason only if Content-Type is text/plain.
This commit is contained in:
parent
9fb2d49b93
commit
f26f8d5afa
2 changed files with 14 additions and 7 deletions
|
@ -139,6 +139,13 @@ func (ctx *Context) Handle(status int, title string, err error) {
|
||||||
ctx.HTML(status, base.TplName(fmt.Sprintf("status/%d", status)))
|
ctx.HTML(status, base.TplName(fmt.Sprintf("status/%d", status)))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (ctx *Context) HandleText(status int, title string) {
|
||||||
|
if (status / 100 == 4) || (status / 100 == 5) {
|
||||||
|
log.Error(4, "%s", title)
|
||||||
|
}
|
||||||
|
ctx.RenderData(status, []byte(title))
|
||||||
|
}
|
||||||
|
|
||||||
func (ctx *Context) HandleAPI(status int, obj interface{}) {
|
func (ctx *Context) HandleAPI(status int, obj interface{}) {
|
||||||
var message string
|
var message string
|
||||||
if err, ok := obj.(error); ok {
|
if err, ok := obj.(error); ok {
|
||||||
|
|
|
@ -96,12 +96,12 @@ func Http(ctx *middleware.Context) {
|
||||||
// FIXME: middlewares/context.go did basic auth check already,
|
// FIXME: middlewares/context.go did basic auth check already,
|
||||||
// maybe could use that one.
|
// maybe could use that one.
|
||||||
if len(auths) != 2 || auths[0] != "Basic" {
|
if len(auths) != 2 || auths[0] != "Basic" {
|
||||||
ctx.Handle(401, "no basic auth and digit auth", nil)
|
ctx.HandleText(401, "no basic auth and digit auth")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
authUsername, authPasswd, err = base.BasicAuthDecode(auths[1])
|
authUsername, authPasswd, err = base.BasicAuthDecode(auths[1])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Handle(401, "no basic auth and digit auth", nil)
|
ctx.HandleText(401, "no basic auth and digit auth")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,7 +116,7 @@ func Http(ctx *middleware.Context) {
|
||||||
token, err := models.GetAccessTokenBySha(authUsername)
|
token, err := models.GetAccessTokenBySha(authUsername)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if err == models.ErrAccessTokenNotExist {
|
if err == models.ErrAccessTokenNotExist {
|
||||||
ctx.Handle(401, "invalid token", nil)
|
ctx.HandleText(401, "invalid token")
|
||||||
} else {
|
} else {
|
||||||
ctx.Handle(500, "GetAccessTokenBySha", err)
|
ctx.Handle(500, "GetAccessTokenBySha", err)
|
||||||
}
|
}
|
||||||
|
@ -138,23 +138,23 @@ func Http(ctx *middleware.Context) {
|
||||||
|
|
||||||
has, err := models.HasAccess(authUser, repo, tp)
|
has, err := models.HasAccess(authUser, repo, tp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Handle(401, "no basic auth and digit auth", nil)
|
ctx.HandleText(401, "no basic auth and digit auth")
|
||||||
return
|
return
|
||||||
} else if !has {
|
} else if !has {
|
||||||
if tp == models.ACCESS_MODE_READ {
|
if tp == models.ACCESS_MODE_READ {
|
||||||
has, err = models.HasAccess(authUser, repo, models.ACCESS_MODE_WRITE)
|
has, err = models.HasAccess(authUser, repo, models.ACCESS_MODE_WRITE)
|
||||||
if err != nil || !has {
|
if err != nil || !has {
|
||||||
ctx.Handle(401, "no basic auth and digit auth", nil)
|
ctx.HandleText(401, "no basic auth and digit auth")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ctx.Handle(401, "no basic auth and digit auth", nil)
|
ctx.HandleText(401, "no basic auth and digit auth")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if !isPull && repo.IsMirror {
|
if !isPull && repo.IsMirror {
|
||||||
ctx.Handle(401, "can't push to mirror", nil)
|
ctx.HandleText(401, "can't push to mirror")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue