mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-01 02:56:08 +01:00
Fix the repository url.
This commit is contained in:
@@ -23,7 +23,7 @@ trait AccountControllerBase extends ControllerBase {
|
|||||||
get("/:userName") {
|
get("/:userName") {
|
||||||
val userName = params("userName")
|
val userName = params("userName")
|
||||||
getAccountByUserName(userName) match {
|
getAccountByUserName(userName) match {
|
||||||
case Some(a) => account.html.userinfo(a, getRepositoriesOfUser(userName, servletContext))
|
case Some(a) => account.html.userinfo(a, getRepositoriesOfUser(userName, baseUrl))
|
||||||
case None => NotFound()
|
case None => NotFound()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,14 @@ abstract class ControllerBase extends ScalatraFilter with ClientSideValidationFo
|
|||||||
protected def NotFound() = html.error("Not Found")
|
protected def NotFound() = html.error("Not Found")
|
||||||
protected def Unauthorized() = redirect("/")
|
protected def Unauthorized() = redirect("/")
|
||||||
|
|
||||||
|
protected def baseUrl = {
|
||||||
|
println(request.getRequestURL.toString)
|
||||||
|
println(request.getRequestURI)
|
||||||
|
val url = request.getRequestURL.toString
|
||||||
|
println(url.substring(0, url.length - request.getRequestURI.length))
|
||||||
|
url.substring(0, url.length - request.getRequestURI.length)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
case class Context(path: String, loginAccount: Option[Account])
|
case class Context(path: String, loginAccount: Option[Account])
|
||||||
@@ -87,7 +87,7 @@ trait CreateRepositoryControllerBase extends ControllerBase {
|
|||||||
def validate(name: String, value: String): Option[String] = {
|
def validate(name: String, value: String): Option[String] = {
|
||||||
if(!value.matches("^[a-zA-Z0-9\\-_]+$")){
|
if(!value.matches("^[a-zA-Z0-9\\-_]+$")){
|
||||||
Some("Repository name contains invalid character.")
|
Some("Repository name contains invalid character.")
|
||||||
} else if(getRepositoriesOfUser(context.loginAccount.get.userName, servletContext).contains(value)){
|
} else if(getRepositoriesOfUser(context.loginAccount.get.userName, baseUrl).contains(value)){
|
||||||
Some("Repository already exists.")
|
Some("Repository already exists.")
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ class IndexController extends IndexControllerBase with RepositoryService with Ac
|
|||||||
trait IndexControllerBase extends ControllerBase { self: RepositoryService =>
|
trait IndexControllerBase extends ControllerBase { self: RepositoryService =>
|
||||||
|
|
||||||
get("/"){
|
get("/"){
|
||||||
html.index(getAccessibleRepositories(context.loginAccount, servletContext))
|
html.index(getAccessibleRepositories(context.loginAccount, baseUrl))
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -8,15 +8,15 @@ class IssuesController extends IssuesControllerBase
|
|||||||
trait IssuesControllerBase extends ControllerBase { self: RepositoryService =>
|
trait IssuesControllerBase extends ControllerBase { self: RepositoryService =>
|
||||||
|
|
||||||
get("/:owner/:repository/issues"){
|
get("/:owner/:repository/issues"){
|
||||||
issues.html.issues(getRepository(params("owner"), params("repository"), servletContext).get)
|
issues.html.issues(getRepository(params("owner"), params("repository"), baseUrl).get)
|
||||||
}
|
}
|
||||||
|
|
||||||
get("/:owner/:repository/issues/:id"){
|
get("/:owner/:repository/issues/:id"){
|
||||||
issues.html.issue(getRepository(params("owner"), params("repository"), servletContext).get)
|
issues.html.issue(getRepository(params("owner"), params("repository"), baseUrl).get)
|
||||||
}
|
}
|
||||||
|
|
||||||
get("/:owner/:repository/issues/new"){
|
get("/:owner/:repository/issues/new"){
|
||||||
issues.html.issueedit(getRepository(params("owner"), params("repository"), servletContext).get)
|
issues.html.issueedit(getRepository(params("owner"), params("repository"), baseUrl).get)
|
||||||
}
|
}
|
||||||
|
|
||||||
post("/:owner/:repository/issues"){
|
post("/:owner/:repository/issues"){
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ trait RepositoryViewerControllerBase extends ControllerBase {
|
|||||||
val enableIssueLink = params("enableIssueLink").toBoolean
|
val enableIssueLink = params("enableIssueLink").toBoolean
|
||||||
|
|
||||||
contentType = "text/html"
|
contentType = "text/html"
|
||||||
view.helpers.markdown(content, getRepository(owner, repository, servletContext).get,
|
view.helpers.markdown(content, getRepository(owner, repository, baseUrl).get,
|
||||||
enableWikiLink, enableCommitLink, enableIssueLink)
|
enableWikiLink, enableCommitLink, enableIssueLink)
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -78,7 +78,7 @@ trait RepositoryViewerControllerBase extends ControllerBase {
|
|||||||
JGitUtil.withGit(getRepositoryDir(owner, repository)){ git =>
|
JGitUtil.withGit(getRepositoryDir(owner, repository)){ git =>
|
||||||
val (logs, hasNext) = JGitUtil.getCommitLog(git, branchName, page, 30)
|
val (logs, hasNext) = JGitUtil.getCommitLog(git, branchName, page, 30)
|
||||||
|
|
||||||
repo.html.commits(Nil, branchName, getRepository(owner, repository, servletContext).get,
|
repo.html.commits(Nil, branchName, getRepository(owner, repository, baseUrl).get,
|
||||||
logs.splitWith{ (commit1, commit2) =>
|
logs.splitWith{ (commit1, commit2) =>
|
||||||
view.helpers.date(commit1.time) == view.helpers.date(commit2.time)
|
view.helpers.date(commit1.time) == view.helpers.date(commit2.time)
|
||||||
}, page, hasNext)
|
}, page, hasNext)
|
||||||
@@ -98,7 +98,7 @@ trait RepositoryViewerControllerBase extends ControllerBase {
|
|||||||
JGitUtil.withGit(getRepositoryDir(owner, repository)){ git =>
|
JGitUtil.withGit(getRepositoryDir(owner, repository)){ git =>
|
||||||
val (logs, hasNext) = JGitUtil.getCommitLog(git, branchName, page, 30, path)
|
val (logs, hasNext) = JGitUtil.getCommitLog(git, branchName, page, 30, path)
|
||||||
|
|
||||||
repo.html.commits(path.split("/").toList, branchName, getRepository(owner, repository, servletContext).get,
|
repo.html.commits(path.split("/").toList, branchName, getRepository(owner, repository, baseUrl).get,
|
||||||
logs.splitWith{ (commit1, commit2) =>
|
logs.splitWith{ (commit1, commit2) =>
|
||||||
view.helpers.date(commit1.time) == view.helpers.date(commit2.time)
|
view.helpers.date(commit1.time) == view.helpers.date(commit2.time)
|
||||||
}, page, hasNext)
|
}, page, hasNext)
|
||||||
@@ -114,7 +114,7 @@ trait RepositoryViewerControllerBase extends ControllerBase {
|
|||||||
val id = params("id") // branch name or commit id
|
val id = params("id") // branch name or commit id
|
||||||
val raw = params.get("raw").getOrElse("false").toBoolean
|
val raw = params.get("raw").getOrElse("false").toBoolean
|
||||||
val path = multiParams("splat").head //.replaceFirst("^tree/.+?/", "")
|
val path = multiParams("splat").head //.replaceFirst("^tree/.+?/", "")
|
||||||
val repositoryInfo = getRepository(owner, repository, servletContext).get
|
val repositoryInfo = getRepository(owner, repository, baseUrl).get
|
||||||
|
|
||||||
JGitUtil.withGit(getRepositoryDir(owner, repository)){ git =>
|
JGitUtil.withGit(getRepositoryDir(owner, repository)){ git =>
|
||||||
val revCommit = JGitUtil.getRevCommitFromId(git, git.getRepository.resolve(id))
|
val revCommit = JGitUtil.getRevCommitFromId(git, git.getRepository.resolve(id))
|
||||||
@@ -158,7 +158,7 @@ trait RepositoryViewerControllerBase extends ControllerBase {
|
|||||||
JGitUtil.withGit(getRepositoryDir(owner, repository)){ git =>
|
JGitUtil.withGit(getRepositoryDir(owner, repository)){ git =>
|
||||||
val revCommit = JGitUtil.getRevCommitFromId(git, git.getRepository.resolve(id))
|
val revCommit = JGitUtil.getRevCommitFromId(git, git.getRepository.resolve(id))
|
||||||
repo.html.commit(id, new JGitUtil.CommitInfo(revCommit),
|
repo.html.commit(id, new JGitUtil.CommitInfo(revCommit),
|
||||||
getRepository(owner, repository, servletContext).get, JGitUtil.getDiffs(git, id))
|
getRepository(owner, repository, baseUrl).get, JGitUtil.getDiffs(git, id))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -169,7 +169,7 @@ trait RepositoryViewerControllerBase extends ControllerBase {
|
|||||||
val owner = params("owner")
|
val owner = params("owner")
|
||||||
val repository = params("repository")
|
val repository = params("repository")
|
||||||
|
|
||||||
repo.html.tags(getRepository(owner, repository, servletContext).get)
|
repo.html.tags(getRepository(owner, repository, baseUrl).get)
|
||||||
})
|
})
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -223,7 +223,7 @@ trait RepositoryViewerControllerBase extends ControllerBase {
|
|||||||
* @return HTML of the file list
|
* @return HTML of the file list
|
||||||
*/
|
*/
|
||||||
private def fileList(owner: String, repository: String, revstr: String = "", path: String = ".") = {
|
private def fileList(owner: String, repository: String, revstr: String = "", path: String = ".") = {
|
||||||
getRepository(owner, repository, servletContext) match {
|
getRepository(owner, repository, baseUrl) match {
|
||||||
case None => NotFound()
|
case None => NotFound()
|
||||||
case Some(repositoryInfo) => {
|
case Some(repositoryInfo) => {
|
||||||
val revision = if(revstr.isEmpty){
|
val revision = if(revstr.isEmpty){
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ trait SettingsControllerBase extends ControllerBase {
|
|||||||
val owner = params("owner")
|
val owner = params("owner")
|
||||||
val repository = params("repository")
|
val repository = params("repository")
|
||||||
|
|
||||||
getRepository(owner, repository, servletContext) match {
|
getRepository(owner, repository, baseUrl) match {
|
||||||
case Some(r) => settings.html.options(r)
|
case Some(r) => settings.html.options(r)
|
||||||
case None => NotFound()
|
case None => NotFound()
|
||||||
}
|
}
|
||||||
@@ -69,7 +69,7 @@ trait SettingsControllerBase extends ControllerBase {
|
|||||||
val owner = params("owner")
|
val owner = params("owner")
|
||||||
val repository = params("repository")
|
val repository = params("repository")
|
||||||
|
|
||||||
getRepository(owner, repository, servletContext) match {
|
getRepository(owner, repository, baseUrl) match {
|
||||||
case Some(r) => settings.html.collaborators(getCollaborators(owner, repository), r)
|
case Some(r) => settings.html.collaborators(getCollaborators(owner, repository), r)
|
||||||
case None => NotFound()
|
case None => NotFound()
|
||||||
}
|
}
|
||||||
@@ -105,7 +105,7 @@ trait SettingsControllerBase extends ControllerBase {
|
|||||||
val owner = params("owner")
|
val owner = params("owner")
|
||||||
val repository = params("repository")
|
val repository = params("repository")
|
||||||
|
|
||||||
getRepository(owner, repository, servletContext) match {
|
getRepository(owner, repository, baseUrl) match {
|
||||||
case Some(r) => settings.html.delete(r)
|
case Some(r) => settings.html.delete(r)
|
||||||
case None => NotFound()
|
case None => NotFound()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ trait WikiControllerBase extends ControllerBase {
|
|||||||
val repository = params("repository")
|
val repository = params("repository")
|
||||||
|
|
||||||
getWikiPage(owner, repository, "Home") match {
|
getWikiPage(owner, repository, "Home") match {
|
||||||
case Some(page) => wiki.html.wiki("Home", page, getRepository(owner, repository, servletContext).get, isWritable(owner, repository))
|
case Some(page) => wiki.html.wiki("Home", page, getRepository(owner, repository, baseUrl).get, isWritable(owner, repository))
|
||||||
case None => redirect("/%s/%s/wiki/Home/_edit".format(owner, repository))
|
case None => redirect("/%s/%s/wiki/Home/_edit".format(owner, repository))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -44,7 +44,7 @@ trait WikiControllerBase extends ControllerBase {
|
|||||||
val pageName = params("page")
|
val pageName = params("page")
|
||||||
|
|
||||||
getWikiPage(owner, repository, pageName) match {
|
getWikiPage(owner, repository, pageName) match {
|
||||||
case Some(page) => wiki.html.wiki(pageName, page, getRepository(owner, repository, servletContext).get, isWritable(owner, repository))
|
case Some(page) => wiki.html.wiki(pageName, page, getRepository(owner, repository, baseUrl).get, isWritable(owner, repository))
|
||||||
case None => redirect("/%s/%s/wiki/%s/_edit".format(owner, repository, pageName)) // TODO URLEncode
|
case None => redirect("/%s/%s/wiki/%s/_edit".format(owner, repository, pageName)) // TODO URLEncode
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -56,7 +56,7 @@ trait WikiControllerBase extends ControllerBase {
|
|||||||
|
|
||||||
JGitUtil.withGit(getWikiRepositoryDir(owner, repository)){ git =>
|
JGitUtil.withGit(getWikiRepositoryDir(owner, repository)){ git =>
|
||||||
wiki.html.wikihistory(Some(page),
|
wiki.html.wikihistory(Some(page),
|
||||||
JGitUtil.getCommitLog(git, "master", path = page + ".md")._1, getRepository(owner, repository, servletContext).get)
|
JGitUtil.getCommitLog(git, "master", path = page + ".md")._1, getRepository(owner, repository, baseUrl).get)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -68,7 +68,7 @@ trait WikiControllerBase extends ControllerBase {
|
|||||||
|
|
||||||
JGitUtil.withGit(getWikiRepositoryDir(owner, repository)){ git =>
|
JGitUtil.withGit(getWikiRepositoryDir(owner, repository)){ git =>
|
||||||
wiki.html.wikicompare(Some(page),
|
wiki.html.wikicompare(Some(page),
|
||||||
getWikiDiffs(git, commitId(0), commitId(1)), getRepository(owner, repository, servletContext).get)
|
getWikiDiffs(git, commitId(0), commitId(1)), getRepository(owner, repository, baseUrl).get)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -79,7 +79,7 @@ trait WikiControllerBase extends ControllerBase {
|
|||||||
|
|
||||||
JGitUtil.withGit(getWikiRepositoryDir(owner, repository)){ git =>
|
JGitUtil.withGit(getWikiRepositoryDir(owner, repository)){ git =>
|
||||||
wiki.html.wikicompare(None,
|
wiki.html.wikicompare(None,
|
||||||
getWikiDiffs(git, commitId(0), commitId(1)), getRepository(owner, repository, servletContext).get)
|
getWikiDiffs(git, commitId(0), commitId(1)), getRepository(owner, repository, baseUrl).get)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -89,7 +89,7 @@ trait WikiControllerBase extends ControllerBase {
|
|||||||
val page = params("page")
|
val page = params("page")
|
||||||
|
|
||||||
wiki.html.wikiedit(page,
|
wiki.html.wikiedit(page,
|
||||||
getWikiPage(owner, repository, page), getRepository(owner, repository, servletContext).get)
|
getWikiPage(owner, repository, page), getRepository(owner, repository, baseUrl).get)
|
||||||
})
|
})
|
||||||
|
|
||||||
post("/:owner/:repository/wiki/_edit", editForm)(writableRepository { form =>
|
post("/:owner/:repository/wiki/_edit", editForm)(writableRepository { form =>
|
||||||
@@ -106,7 +106,7 @@ trait WikiControllerBase extends ControllerBase {
|
|||||||
val owner = params("owner")
|
val owner = params("owner")
|
||||||
val repository = params("repository")
|
val repository = params("repository")
|
||||||
|
|
||||||
wiki.html.wikiedit("", None, getRepository(owner, repository, servletContext).get)
|
wiki.html.wikiedit("", None, getRepository(owner, repository, baseUrl).get)
|
||||||
})
|
})
|
||||||
|
|
||||||
post("/:owner/:repository/wiki/_new", newForm)(writableRepository { form =>
|
post("/:owner/:repository/wiki/_new", newForm)(writableRepository { form =>
|
||||||
@@ -133,7 +133,7 @@ trait WikiControllerBase extends ControllerBase {
|
|||||||
val owner = params("owner")
|
val owner = params("owner")
|
||||||
val repository = params("repository")
|
val repository = params("repository")
|
||||||
|
|
||||||
wiki.html.wikipages(getWikiPageList(owner, repository), getRepository(owner, repository, servletContext).get, isWritable(owner, repository))
|
wiki.html.wikipages(getWikiPageList(owner, repository), getRepository(owner, repository, baseUrl).get, isWritable(owner, repository))
|
||||||
})
|
})
|
||||||
|
|
||||||
get("/:owner/:repository/wiki/_history")(readableRepository {
|
get("/:owner/:repository/wiki/_history")(readableRepository {
|
||||||
@@ -142,7 +142,7 @@ trait WikiControllerBase extends ControllerBase {
|
|||||||
|
|
||||||
JGitUtil.withGit(getWikiRepositoryDir(owner, repository)){ git =>
|
JGitUtil.withGit(getWikiRepositoryDir(owner, repository)){ git =>
|
||||||
wiki.html.wikihistory(None,
|
wiki.html.wikihistory(None,
|
||||||
JGitUtil.getCommitLog(git, "master")._1, getRepository(owner, repository, servletContext).get)
|
JGitUtil.getCommitLog(git, "master")._1, getRepository(owner, repository, baseUrl).get)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -56,10 +56,10 @@ trait RepositoryService { self: AccountService =>
|
|||||||
* Returns the list of specified user's repositories information.
|
* Returns the list of specified user's repositories information.
|
||||||
*
|
*
|
||||||
* @param userName the user name
|
* @param userName the user name
|
||||||
* @param servletContext the servlet context
|
* @param baseUrl the base url of this application
|
||||||
* @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, baseUrl: String): List[RepositoryInfo] = {
|
||||||
val q1 = Repositories
|
val q1 = Repositories
|
||||||
.filter { r => r.userName is userName.bind }
|
.filter { r => r.userName is userName.bind }
|
||||||
.map { r => r }
|
.map { r => r }
|
||||||
@@ -70,7 +70,7 @@ trait RepositoryService { self: AccountService =>
|
|||||||
.map { case (c, r) => r }
|
.map { case (c, r) => r }
|
||||||
|
|
||||||
q1.union(q2).sortBy(_.lastActivityDate).list map { repository =>
|
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, baseUrl)
|
||||||
RepositoryInfo(repositoryInfo.owner, repositoryInfo.name, repositoryInfo.url, repository, repositoryInfo.branchList, repositoryInfo.tags)
|
RepositoryInfo(repositoryInfo.owner, repositoryInfo.name, repositoryInfo.url, repository, repositoryInfo.branchList, repositoryInfo.tags)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -80,14 +80,14 @@ trait RepositoryService { self: AccountService =>
|
|||||||
*
|
*
|
||||||
* @param userName the user name of the repository owner
|
* @param userName the user name of the repository owner
|
||||||
* @param repositoryName the repository name
|
* @param repositoryName the repository name
|
||||||
* @param servletContext the servlet context
|
* @param baseUrl the base url of this application
|
||||||
* @return the repository information
|
* @return the repository information
|
||||||
*/
|
*/
|
||||||
def getRepository(userName: String, repositoryName: String, servletContext: ServletContext): Option[RepositoryInfo] = {
|
def getRepository(userName: String, repositoryName: String, baseUrl: String): Option[RepositoryInfo] = {
|
||||||
(Query(Repositories) filter { repository =>
|
(Query(Repositories) filter { repository =>
|
||||||
(repository.userName is userName.bind) && (repository.repositoryName is repositoryName.bind)
|
(repository.userName is userName.bind) && (repository.repositoryName is repositoryName.bind)
|
||||||
} firstOption) map { repository =>
|
} firstOption) map { repository =>
|
||||||
val repositoryInfo = JGitUtil.getRepositoryInfo(repository.userName, repository.repositoryName, servletContext)
|
val repositoryInfo = JGitUtil.getRepositoryInfo(repository.userName, repository.repositoryName, baseUrl)
|
||||||
RepositoryInfo(repositoryInfo.owner, repositoryInfo.name, repositoryInfo.url, repository, repositoryInfo.branchList, repositoryInfo.tags)
|
RepositoryInfo(repositoryInfo.owner, repositoryInfo.name, repositoryInfo.url, repository, repositoryInfo.branchList, repositoryInfo.tags)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -96,15 +96,15 @@ trait RepositoryService { self: AccountService =>
|
|||||||
* Returns the list of accessible repositories information for the specified account user.
|
* Returns the list of accessible repositories information for the specified account user.
|
||||||
*
|
*
|
||||||
* @param account the account
|
* @param account the account
|
||||||
* @param servletContext the servlet context
|
* @param baseUrl the base url of this application
|
||||||
* @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], servletContext: ServletContext): List[RepositoryInfo] = {
|
def getAccessibleRepositories(account: Option[Account], baseUrl: String): List[RepositoryInfo] = {
|
||||||
account match {
|
account match {
|
||||||
// for Administrators
|
// for Administrators
|
||||||
case Some(x) if(x.userType == AccountService.Administrator) => {
|
case Some(x) if(x.userType == AccountService.Administrator) => {
|
||||||
(Query(Repositories) sortBy(_.lastActivityDate desc) list) map { repository =>
|
(Query(Repositories) sortBy(_.lastActivityDate desc) list) map { repository =>
|
||||||
val repositoryInfo = JGitUtil.getRepositoryInfo(repository.userName, repository.repositoryName, servletContext)
|
val repositoryInfo = JGitUtil.getRepositoryInfo(repository.userName, repository.repositoryName, baseUrl)
|
||||||
RepositoryInfo(repositoryInfo.owner, repositoryInfo.name, repositoryInfo.url, repository, repositoryInfo.branchList, repositoryInfo.tags)
|
RepositoryInfo(repositoryInfo.owner, repositoryInfo.name, repositoryInfo.url, repository, repositoryInfo.branchList, repositoryInfo.tags)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -112,14 +112,14 @@ trait RepositoryService { self: AccountService =>
|
|||||||
case Some(x) if(x.userType == AccountService.Normal) => {
|
case Some(x) if(x.userType == AccountService.Normal) => {
|
||||||
// TODO only repositories registered as collaborator
|
// TODO only repositories registered as collaborator
|
||||||
(Query(Repositories) sortBy(_.lastActivityDate desc) list) map { repository =>
|
(Query(Repositories) sortBy(_.lastActivityDate desc) list) map { repository =>
|
||||||
val repositoryInfo = JGitUtil.getRepositoryInfo(repository.userName, repository.repositoryName, servletContext)
|
val repositoryInfo = JGitUtil.getRepositoryInfo(repository.userName, repository.repositoryName, baseUrl)
|
||||||
RepositoryInfo(repositoryInfo.owner, repositoryInfo.name, repositoryInfo.url, repository, repositoryInfo.branchList, repositoryInfo.tags)
|
RepositoryInfo(repositoryInfo.owner, repositoryInfo.name, repositoryInfo.url, repository, repositoryInfo.branchList, repositoryInfo.tags)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// for Guests
|
// for Guests
|
||||||
case None => {
|
case None => {
|
||||||
(Query(Repositories) filter(_.repositoryType is Public.bind) sortBy(_.lastActivityDate desc) list) map { repository =>
|
(Query(Repositories) filter(_.repositoryType is Public.bind) sortBy(_.lastActivityDate desc) list) map { repository =>
|
||||||
val repositoryInfo = JGitUtil.getRepositoryInfo(repository.userName, repository.repositoryName, servletContext)
|
val repositoryInfo = JGitUtil.getRepositoryInfo(repository.userName, repository.repositoryName, baseUrl)
|
||||||
RepositoryInfo(repositoryInfo.owner, repositoryInfo.name, repositoryInfo.url, repository, repositoryInfo.branchList, repositoryInfo.tags)
|
RepositoryInfo(repositoryInfo.owner, repositoryInfo.name, repositoryInfo.url, repository, repositoryInfo.branchList, repositoryInfo.tags)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ class BasicAuthenticationFilter extends Filter with RepositoryService with Accou
|
|||||||
val repositoryOwner = paths(2)
|
val repositoryOwner = paths(2)
|
||||||
val repositoryName = paths(3).replaceFirst("\\.git$", "")
|
val repositoryName = paths(3).replaceFirst("\\.git$", "")
|
||||||
|
|
||||||
getRepository(repositoryOwner, repositoryName.replaceFirst("\\.wiki", ""), request.getServletContext) match {
|
getRepository(repositoryOwner, repositoryName.replaceFirst("\\.wiki", ""), "") match {
|
||||||
case Some(repository) => {
|
case Some(repository) => {
|
||||||
if(!request.getRequestURI.endsWith("/git-receive-pack") &&
|
if(!request.getRequestURI.endsWith("/git-receive-pack") &&
|
||||||
repository.repository.repositoryType == RepositoryService.Public){
|
repository.repository.repositoryType == RepositoryService.Public){
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ 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("/")
|
||||||
getRepository(paths(1), paths(2), servletContext) match {
|
getRepository(paths(1), paths(2), baseUrl) match {
|
||||||
case None => NotFound()
|
case None => NotFound()
|
||||||
case Some(repository) =>
|
case Some(repository) =>
|
||||||
if(repository.repository.repositoryType == RepositoryService.Public){
|
if(repository.repository.repositoryType == RepositoryService.Public){
|
||||||
|
|||||||
@@ -110,10 +110,10 @@ object JGitUtil {
|
|||||||
/**
|
/**
|
||||||
* Returns the repository information. It contains branch names and tag names.
|
* Returns the repository information. It contains branch names and tag names.
|
||||||
*/
|
*/
|
||||||
def getRepositoryInfo(owner: String, repository: String, servletContext: ServletContext): RepositoryInfo = {
|
def getRepositoryInfo(owner: String, repository: String, baseUrl: String): RepositoryInfo = {
|
||||||
withGit(getRepositoryDir(owner, repository)){ git =>
|
withGit(getRepositoryDir(owner, repository)){ git =>
|
||||||
RepositoryInfo(
|
RepositoryInfo(
|
||||||
owner, repository, "http://localhost:8080%s/git/%s/%s.git".format(servletContext.getContextPath, owner, repository),
|
owner, repository, baseUrl + "/git/%s/%s.git".format(owner, repository),
|
||||||
// branches
|
// branches
|
||||||
git.branchList.call.asScala.map { ref =>
|
git.branchList.call.asScala.map { ref =>
|
||||||
ref.getName.replaceFirst("^refs/heads/", "")
|
ref.getName.replaceFirst("^refs/heads/", "")
|
||||||
|
|||||||
Reference in New Issue
Block a user