mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-06 05:25:50 +01:00
Fix the account page to display repositories which is registered as collaborator.
This commit is contained in:
@@ -5,6 +5,10 @@ import scala.slick.driver.H2Driver.simple._
|
|||||||
import Database.threadLocalSession
|
import Database.threadLocalSession
|
||||||
import util.JGitUtil
|
import util.JGitUtil
|
||||||
import javax.servlet.ServletContext
|
import javax.servlet.ServletContext
|
||||||
|
import scala.Some
|
||||||
|
import model.Repository
|
||||||
|
import model.Account
|
||||||
|
import model.Collaborator
|
||||||
|
|
||||||
trait RepositoryService { self: AccountService =>
|
trait RepositoryService { self: AccountService =>
|
||||||
import RepositoryService._
|
import RepositoryService._
|
||||||
@@ -46,7 +50,16 @@ trait RepositoryService { self: AccountService =>
|
|||||||
* @return the list of repository information which is sorted in descending order of lastActivityDate.
|
* @return the list of repository information which is sorted in descending order of lastActivityDate.
|
||||||
*/
|
*/
|
||||||
def getRepositoriesOfUser(userName: String, servletContext: ServletContext): List[RepositoryInfo] = {
|
def getRepositoriesOfUser(userName: String, servletContext: ServletContext): List[RepositoryInfo] = {
|
||||||
(Query(Repositories) filter(_.userName is userName.bind) sortBy(_.lastActivityDate desc) list) map { repository =>
|
val q1 = Repositories
|
||||||
|
.filter { r => r.userName is userName.bind }
|
||||||
|
.map { r => r }
|
||||||
|
|
||||||
|
val q2 = Collaborators
|
||||||
|
.innerJoin(Repositories).on((c, r) => (c.userName is r.userName) && (c.repositoryName is r.repositoryName))
|
||||||
|
.filter{ case (c, r) => c.collaboratorName is userName.bind}
|
||||||
|
.map { case (c, r) => r }
|
||||||
|
|
||||||
|
q1.union(q2).sortBy(_.lastActivityDate).list map { repository =>
|
||||||
val repositoryInfo = JGitUtil.getRepositoryInfo(repository.userName, repository.repositoryName, servletContext)
|
val repositoryInfo = JGitUtil.getRepositoryInfo(repository.userName, repository.repositoryName, servletContext)
|
||||||
RepositoryInfo(repositoryInfo.owner, repositoryInfo.name, repositoryInfo.url, repository, repositoryInfo.branchList, repositoryInfo.tags)
|
RepositoryInfo(repositoryInfo.owner, repositoryInfo.name, repositoryInfo.url, repository, repositoryInfo.branchList, repositoryInfo.tags)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,6 +26,8 @@
|
|||||||
@repositories.map { repository =>
|
@repositories.map { repository =>
|
||||||
<div class="block">
|
<div class="block">
|
||||||
<div class="block-header-2">
|
<div class="block-header-2">
|
||||||
|
<a href="@path/@repository.owner">@repository.owner</a>
|
||||||
|
/
|
||||||
<a href="@path/@repository.owner/@repository.name">@repository.name</a>
|
<a href="@path/@repository.owner/@repository.name">@repository.name</a>
|
||||||
@if(repository.repository.repositoryType == Private){
|
@if(repository.repository.repositoryType == Private){
|
||||||
<i class="icon-lock"></i>
|
<i class="icon-lock"></i>
|
||||||
|
|||||||
Reference in New Issue
Block a user