Fix an error in ReadableRepositoryAuthenticator when repository does not exist.

This commit is contained in:
takezoe
2013-06-06 21:39:50 +09:00
parent faba787e0d
commit 62912f5416

View File

@@ -85,16 +85,19 @@ trait ReadableRepositoryAuthenticator { self: ControllerBase with RepositoryServ
private def authenticate(action: => Any) = { private def authenticate(action: => Any) = {
{ {
val paths = request.getRequestURI.split("/") val paths = request.getRequestURI.split("/")
val repository = getRepository(paths(1), paths(2), servletContext) getRepository(paths(1), paths(2), servletContext) match {
if(repository.get.repository.repositoryType == RepositoryService.Public){ case None => NotFound()
action case Some(repository) =>
} else { if(repository.repository.repositoryType == RepositoryService.Public){
context.loginAccount match { action
case Some(x) if(x.userType == AccountService.Administrator) => action } else {
case Some(x) if(paths(1) == x.userName) => action context.loginAccount match {
case Some(x) if(getCollaborators(paths(1), paths(2)).contains(x.userName)) => action case Some(x) if(x.userType == AccountService.Administrator) => action
case _ => Unauthorized() case Some(x) if(paths(1) == x.userName) => action
} case Some(x) if(getCollaborators(paths(1), paths(2)).contains(x.userName)) => action
case _ => Unauthorized()
}
}
} }
} }
} }