Merge pull request #697 from banjun/fix-basicauth-for-public-repo

let non-anonymous user read access to public repos with basic auth
This commit is contained in:
Naoki Takezoe
2015-04-16 02:13:33 +09:00

View File

@@ -43,12 +43,16 @@ class BasicAuthenticationFilter extends Filter with RepositoryService with Accou
case auth => decodeAuthHeader(auth).split(":", 2) match {
case Array(username, password) => {
authenticate(settings, username, password) match {
case Some(account) if (isUpdating || repository.repository.isPrivate) => {
if(hasWritePermission(repository.owner, repository.name, Some(account))){
request.setAttribute(Keys.Request.UserName, account.userName)
chain.doFilter(req, wrappedResponse)
case Some(account) => {
if (isUpdating || repository.repository.isPrivate) {
if(hasWritePermission(repository.owner, repository.name, Some(account))){
request.setAttribute(Keys.Request.UserName, account.userName)
chain.doFilter(req, wrappedResponse)
} else {
requireAuth(response)
}
} else {
requireAuth(response)
chain.doFilter(req, wrappedResponse)
}
}
case _ => requireAuth(response)