소스 검색

Correctly check http git access rights for reverse proxy authorized users (#3721)

tags/v1.5.0-dev
Lauris BH 6 년 전
부모
커밋
ab5cc6f3a9
1개의 변경된 파일20개의 추가작업 그리고 20개의 파일을 삭제
  1. 20
    20
      routers/repo/http.go

+ 20
- 20
routers/repo/http.go 파일 보기

@@ -184,33 +184,33 @@ func HTTP(ctx *context.Context) {
return
}
}
}

if !isPublicPull {
has, err := models.HasAccess(authUser.ID, repo, accessMode)
if err != nil {
ctx.ServerError("HasAccess", err)
return
} else if !has {
if accessMode == models.AccessModeRead {
has, err = models.HasAccess(authUser.ID, repo, models.AccessModeWrite)
if err != nil {
ctx.ServerError("HasAccess2", err)
return
} else if !has {
ctx.HandleText(http.StatusForbidden, "User permission denied")
return
}
} else {
if !isPublicPull {
has, err := models.HasAccess(authUser.ID, repo, accessMode)
if err != nil {
ctx.ServerError("HasAccess", err)
return
} else if !has {
if accessMode == models.AccessModeRead {
has, err = models.HasAccess(authUser.ID, repo, models.AccessModeWrite)
if err != nil {
ctx.ServerError("HasAccess2", err)
return
} else if !has {
ctx.HandleText(http.StatusForbidden, "User permission denied")
return
}
}

if !isPull && repo.IsMirror {
ctx.HandleText(http.StatusForbidden, "mirror repository is read-only")
} else {
ctx.HandleText(http.StatusForbidden, "User permission denied")
return
}
}

if !isPull && repo.IsMirror {
ctx.HandleText(http.StatusForbidden, "mirror repository is read-only")
return
}
}

if !repo.CheckUnitUser(authUser.ID, authUser.IsAdmin, unitType) {

Loading…
취소
저장