diff --git a/src/main/scala/servlet/BasicAuthenticationFilter.scala b/src/main/scala/servlet/BasicAuthenticationFilter.scala index 203c518..d849845 100644 --- a/src/main/scala/servlet/BasicAuthenticationFilter.scala +++ b/src/main/scala/servlet/BasicAuthenticationFilter.scala @@ -54,15 +54,9 @@ } private def isWritableUser(username: String, password: String, repository: RepositoryService.RepositoryInfo): Boolean = { - getAccountByUserName(username) match { - case Some(account) if(account.password == encrypt(password)) => { - // TODO Use hasWritePermission? - (account.isAdmin // administrator - || account.userName == repository.owner // repository owner - || getCollaborators(repository.owner, repository.name).contains(account.userName)) // collaborator - } - case _ => false - } + getAccountByUserName(username).map { account => + account.password == encrypt(password) && hasWritePermission(repository.owner, repository.name, Some(account)) + } getOrElse false } private def requireAuth(response: HttpServletResponse): Unit = {