diff --git a/src/main/scala/app/AccountController.scala b/src/main/scala/app/AccountController.scala
index ca513d4..72244dc 100644
--- a/src/main/scala/app/AccountController.scala
+++ b/src/main/scala/app/AccountController.scala
@@ -112,7 +112,7 @@
val members = getGroupMembers(account.userName)
_root_.account.html.repositories(account,
if(account.isGroupAccount) Nil else getGroupsByUserName(userName),
- getVisibleRepositories(context.loginAccount, baseUrl, Some(userName)),
+ getVisibleRepositories(context.loginAccount, context.baseUrl, Some(userName)),
context.loginAccount.exists(x => members.exists { member => member.userName == x.userName && member.isManager }))
}
}
@@ -292,7 +292,7 @@
*/
post("/new", newRepositoryForm)(usersOnly { form =>
LockUtil.lock(s"${form.owner}/${form.name}/create"){
- if(getRepository(form.owner, form.name, baseUrl).isEmpty){
+ if(getRepository(form.owner, form.name, context.baseUrl).isEmpty){
val ownerAccount = getAccountByUserName(form.owner).get
val loginAccount = context.loginAccount.get
val loginUserName = loginAccount.userName
diff --git a/src/main/scala/app/ControllerBase.scala b/src/main/scala/app/ControllerBase.scala
index 1b2e0f9..34ad4ce 100644
--- a/src/main/scala/app/ControllerBase.scala
+++ b/src/main/scala/app/ControllerBase.scala
@@ -141,8 +141,8 @@
val path = settings.baseUrl.getOrElse(request.getServletContext.getContextPath)
val currentPath = request.getRequestURI.substring(request.getContextPath.length)
- val baseURL = settings.baseUrl.getOrElse(request.getRequestURL.substring(0, request.getRequestURL.length - request.getRequestURI.length))
- val host = new java.net.URL(baseURL).getHost
+ val baseUrl = settings.baseUrl(request)
+ val host = new java.net.URL(baseUrl).getHost
/**
* Get object from cache.
diff --git a/src/main/scala/app/DashboardController.scala b/src/main/scala/app/DashboardController.scala
index 871dd34..8fe73bf 100644
--- a/src/main/scala/app/DashboardController.scala
+++ b/src/main/scala/app/DashboardController.scala
@@ -49,7 +49,7 @@
)
val userName = context.loginAccount.get.userName
- val repositories = getUserRepositories(userName, baseUrl).map(repo => repo.owner -> repo.name)
+ val repositories = getUserRepositories(userName, context.baseUrl).map(repo => repo.owner -> repo.name)
val filterUser = Map(filter -> userName)
val page = IssueSearchCondition.page(request)
//
@@ -80,7 +80,7 @@
}.copy(repo = repository))
val userName = context.loginAccount.get.userName
- val repositories = getUserRepositories(userName, baseUrl).map(repo => repo.owner -> repo.name)
+ val repositories = getUserRepositories(userName, context.baseUrl).map(repo => repo.owner -> repo.name)
val filterUser = Map(filter -> userName)
val page = IssueSearchCondition.page(request)
diff --git a/src/main/scala/app/IndexController.scala b/src/main/scala/app/IndexController.scala
index a51025d..6cc95b6 100644
--- a/src/main/scala/app/IndexController.scala
+++ b/src/main/scala/app/IndexController.scala
@@ -21,8 +21,8 @@
val loginAccount = context.loginAccount
html.index(getRecentActivities(),
- getVisibleRepositories(loginAccount, baseUrl),
- loginAccount.map{ account => getUserRepositories(account.userName, baseUrl) }.getOrElse(Nil)
+ getVisibleRepositories(loginAccount, context.baseUrl),
+ loginAccount.map{ account => getUserRepositories(account.userName, context.baseUrl) }.getOrElse(Nil)
)
}
diff --git a/src/main/scala/app/IssuesController.scala b/src/main/scala/app/IssuesController.scala
index be564ee..7dc634c 100644
--- a/src/main/scala/app/IssuesController.scala
+++ b/src/main/scala/app/IssuesController.scala
@@ -118,7 +118,7 @@
// notifications
Notifier().toNotify(repository, issueId, form.content.getOrElse("")){
- Notifier.msgIssue(s"${baseUrl}/${owner}/${name}/issues/${issueId}")
+ Notifier.msgIssue(s"${context.baseUrl}/${owner}/${name}/issues/${issueId}")
}
redirect(s"/${owner}/${name}/issues/${issueId}")
@@ -342,13 +342,13 @@
case f =>
content foreach {
f.toNotify(repository, issueId, _){
- Notifier.msgComment(s"${baseUrl}/${owner}/${name}/${
+ Notifier.msgComment(s"${context.baseUrl}/${owner}/${name}/${
if(issue.isPullRequest) "pull" else "issues"}/${issueId}#comment-${commentId}")
}
}
action foreach {
f.toNotify(repository, issueId, _){
- Notifier.msgStatus(s"${baseUrl}/${owner}/${name}/issues/${issueId}")
+ Notifier.msgStatus(s"${context.baseUrl}/${owner}/${name}/issues/${issueId}")
}
}
}
diff --git a/src/main/scala/app/PullRequestsController.scala b/src/main/scala/app/PullRequestsController.scala
index 5e2c6bc..a7c85cd 100644
--- a/src/main/scala/app/PullRequestsController.scala
+++ b/src/main/scala/app/PullRequestsController.scala
@@ -100,7 +100,7 @@
pulls.html.mergeguide(
checkConflictInPullRequest(owner, name, pullreq.branch, pullreq.requestUserName, name, pullreq.requestBranch, issueId),
pullreq,
- s"${baseUrl}/git/${pullreq.requestUserName}/${pullreq.requestRepositoryName}.git")
+ s"${context.baseUrl}/git/${pullreq.requestUserName}/${pullreq.requestRepositoryName}.git")
}
} getOrElse NotFound
})
@@ -178,7 +178,7 @@
pullreq.requestUserName, pullreq.requestRepositoryName, pullreq.commitIdTo)
// close issue by content of pull request
- val defaultBranch = getRepository(owner, name, baseUrl).get.repository.defaultBranch
+ val defaultBranch = getRepository(owner, name, context.baseUrl).get.repository.defaultBranch
if(pullreq.branch == defaultBranch){
commits.flatten.foreach { commit =>
closeIssuesFromMessage(commit.fullMessage, loginAccount.userName, owner, name)
@@ -201,7 +201,7 @@
// notifications
Notifier().toNotify(repository, issueId, "merge"){
- Notifier.msgStatus(s"${baseUrl}/${owner}/${name}/pull/${issueId}")
+ Notifier.msgStatus(s"${context.baseUrl}/${owner}/${name}/pull/${issueId}")
}
redirect(s"/${owner}/${name}/pull/${issueId}")
@@ -214,7 +214,7 @@
get("/:owner/:repository/compare")(referrersOnly { forkedRepository =>
(forkedRepository.repository.originUserName, forkedRepository.repository.originRepositoryName) match {
case (Some(originUserName), Some(originRepositoryName)) => {
- getRepository(originUserName, originRepositoryName, baseUrl).map { originRepository =>
+ getRepository(originUserName, originRepositoryName, context.baseUrl).map { originRepository =>
using(
Git.open(getRepositoryDir(originUserName, originRepositoryName)),
Git.open(getRepositoryDir(forkedRepository.owner, forkedRepository.name))
@@ -251,7 +251,7 @@
getForkedRepositories(forkedRepository.owner, forkedRepository.name).find(_._1 == originOwner).map(_._2)
}
};
- originRepository <- getRepository(originOwner, originRepositoryName, baseUrl)
+ originRepository <- getRepository(originOwner, originRepositoryName, context.baseUrl)
) yield {
using(
Git.open(getRepositoryDir(originRepository.owner, originRepository.name)),
@@ -303,7 +303,7 @@
getForkedRepositories(forkedRepository.owner, forkedRepository.name).find(_._1 == originOwner).map(_._2)
}
};
- originRepository <- getRepository(originOwner, originRepositoryName, baseUrl)
+ originRepository <- getRepository(originOwner, originRepositoryName, context.baseUrl)
) yield {
using(
Git.open(getRepositoryDir(originRepository.owner, originRepository.name)),
@@ -356,7 +356,7 @@
// notifications
Notifier().toNotify(repository, issueId, form.content.getOrElse("")){
- Notifier.msgPullRequest(s"${baseUrl}/${repository.owner}/${repository.name}/pull/${issueId}")
+ Notifier.msgPullRequest(s"${context.baseUrl}/${repository.owner}/${repository.name}/pull/${issueId}")
}
redirect(s"/${repository.owner}/${repository.name}/pull/${issueId}")
diff --git a/src/main/scala/app/RepositoryViewerController.scala b/src/main/scala/app/RepositoryViewerController.scala
index d13f9be..6798c0a 100644
--- a/src/main/scala/app/RepositoryViewerController.scala
+++ b/src/main/scala/app/RepositoryViewerController.scala
@@ -304,7 +304,7 @@
getRepository(
repository.repository.originUserName.getOrElse(repository.owner),
repository.repository.originRepositoryName.getOrElse(repository.name),
- baseUrl),
+ context.baseUrl),
getForkedRepositories(
repository.repository.originUserName.getOrElse(repository.owner),
repository.repository.originRepositoryName.getOrElse(repository.name)),
diff --git a/src/main/scala/service/SystemSettingsService.scala b/src/main/scala/service/SystemSettingsService.scala
index ba425a3..fd72b60 100644
--- a/src/main/scala/service/SystemSettingsService.scala
+++ b/src/main/scala/service/SystemSettingsService.scala
@@ -7,11 +7,7 @@
trait SystemSettingsService {
- def baseUrl(implicit request: HttpServletRequest): String = loadSystemSettings().baseUrl.getOrElse {
- defining(request.getRequestURL.toString){ url =>
- url.substring(0, url.length - (request.getRequestURI.length - request.getContextPath.length))
- }
- }.replaceFirst("/$", "")
+ def baseUrl(implicit request: HttpServletRequest): String = loadSystemSettings().baseUrl(request)
def saveSystemSettings(settings: SystemSettings): Unit = {
defining(new java.util.Properties()){ props =>
@@ -110,7 +106,13 @@
sshPort: Option[Int],
smtp: Option[Smtp],
ldapAuthentication: Boolean,
- ldap: Option[Ldap])
+ ldap: Option[Ldap]){
+ def baseUrl(request: HttpServletRequest): String = baseUrl.getOrElse {
+ defining(request.getRequestURL.toString){ url =>
+ url.substring(0, url.length - (request.getRequestURI.length - request.getContextPath.length))
+ }
+ }.replaceFirst("/$", "")
+ }
case class Ldap(
host: String,
diff --git a/src/main/twirl/helper/feed.scala.xml b/src/main/twirl/helper/feed.scala.xml
index f870ca3..3a8e379 100644
--- a/src/main/twirl/helper/feed.scala.xml
+++ b/src/main/twirl/helper/feed.scala.xml
@@ -8,10 +8,10 @@
@header(activities: List[model.Activity]) = {