gitea/modules/context
zeripath 17c5c654a5
Prevent double-login for Git HTTP and LFS and simplify login ()
* Prevent double-login for Git HTTP and LFS and simplify login

There are a number of inconsistencies with our current methods for
logging in for git and lfs. The first is that there is a double login
process. This is particularly evident in 1.13 where there are no less
than 4 hash checks for basic authentication due to the previous
IsPasswordSet behaviour.

This duplicated code had individual inconsistencies that were not
helpful and caused confusion.

This PR does the following:

* Remove the specific login code from the git and lfs handlers except
for the lfs special bearer token
* Simplify the meaning of DisableBasicAuthentication to allow Token and
Oauth2 sign-in.
* The removal of the specific code from git and lfs means that these
both now have the same login semantics and can - if not
DisableBasicAuthentication - login from external services. Further it
allows Oauth2 token authentication as per our standard mechanisms.
* The change in the recovery handler prevents the service from
re-attempting to login - primarily because this could easily cause a
further panic and it is wasteful.

* add test

Signed-off-by: Andrew Thornton <art27@cantab.net>
Co-authored-by: Andrew Thornton <art27@cantab.net>
..
access_log.go Fix access log ()
api.go [refactor] replace int with httpStatusCodes ()
api_org.go Golint fixed for modules/context
api_test.go fix API link header ()
auth.go [refactor] replace int with httpStatusCodes ()
captcha.go Fix captcha ()
context.go Prevent double-login for Git HTTP and LFS and simplify login ()
csrf.go Add SameSite setting for cookies ()
form.go Move macaron to chi ()
org.go Unified link creation. ()
pagination.go [Feature] add precise search type for Elastic Search ()
permission.go Update docs and comments to remove macaron ()
private.go Update docs and comments to remove macaron ()
repo.go On open repository open common cat file batch and batch-check ()
response.go Stop calling WriteHeader in Write ()
xsrf.go Move macaron to chi ()
xsrf_test.go Move macaron to chi ()