Fix repository list of the index page.

This commit is contained in:
takezoe
2013-07-04 04:07:07 +09:00
parent 9688afac02
commit f34927e3aa

View File

@@ -22,8 +22,6 @@ trait RepositoryService { self: AccountService =>
def createRepository(repositoryName: String, userName: String, description: Option[String]): Unit = { def createRepository(repositoryName: String, userName: String, description: Option[String]): Unit = {
// TODO create a git repository also here? // TODO create a git repository also here?
// TODO insert default labels.
Repositories insert Repositories insert
Repository( Repository(
userName = userName, userName = userName,
@@ -111,30 +109,23 @@ trait RepositoryService { self: AccountService =>
* @return the repository informations which is sorted in descending order of lastActivityDate. * @return the repository informations which is sorted in descending order of lastActivityDate.
*/ */
def getAccessibleRepositories(account: Option[Account], baseUrl: String): List[RepositoryInfo] = { def getAccessibleRepositories(account: Option[Account], baseUrl: String): List[RepositoryInfo] = {
account match {
def createRepositoryInfo(repository: Repository): RepositoryInfo = {
val repositoryInfo = JGitUtil.getRepositoryInfo(repository.userName, repository.repositoryName, baseUrl)
RepositoryInfo(repositoryInfo.owner, repositoryInfo.name, repositoryInfo.url, repository, repositoryInfo.branchList, repositoryInfo.tags)
}
(account match {
// for Administrators // for Administrators
case Some(x) if(x.isAdmin) => { case Some(x) if(x.isAdmin) => Query(Repositories)
(Query(Repositories) sortBy(_.lastActivityDate desc) list) map { repository =>
val repositoryInfo = JGitUtil.getRepositoryInfo(repository.userName, repository.repositoryName, baseUrl)
RepositoryInfo(repositoryInfo.owner, repositoryInfo.name, repositoryInfo.url, repository, repositoryInfo.branchList, repositoryInfo.tags)
}
}
// for Normal Users // for Normal Users
case Some(x) if(!x.isAdmin) => { case Some(x) if(!x.isAdmin) =>
// TODO only repositories registered as collaborator Query(Repositories) filter { t => (t.isPrivate is false.bind) ||
(Query(Repositories) sortBy(_.lastActivityDate desc) list) map { repository => (Query(Collaborators).filter(t2 => t2.byRepository(t.userName, t.repositoryName) && (t2.collaboratorName is x.userName.bind)) exists)
val repositoryInfo = JGitUtil.getRepositoryInfo(repository.userName, repository.repositoryName, baseUrl)
RepositoryInfo(repositoryInfo.owner, repositoryInfo.name, repositoryInfo.url, repository, repositoryInfo.branchList, repositoryInfo.tags)
}
} }
// for Guests // for Guests
case None => { case None => Query(Repositories) filter(_.isPrivate is false.bind)
(Query(Repositories) filter(_.isPrivate is false.bind) sortBy(_.lastActivityDate desc) list) map { repository => }).sortBy(_.lastActivityDate desc).list.map(createRepositoryInfo _)
val repositoryInfo = JGitUtil.getRepositoryInfo(repository.userName, repository.repositoryName, baseUrl)
RepositoryInfo(repositoryInfo.owner, repositoryInfo.name, repositoryInfo.url, repository, repositoryInfo.branchList, repositoryInfo.tags)
}
}
}
} }
/** /**