mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-06 21:45:50 +01:00
baseUrl calculation is concentrated to SystemSettings
This commit is contained in:
@@ -112,7 +112,7 @@ trait AccountControllerBase extends AccountManagementControllerBase {
|
|||||||
val members = getGroupMembers(account.userName)
|
val members = getGroupMembers(account.userName)
|
||||||
_root_.account.html.repositories(account,
|
_root_.account.html.repositories(account,
|
||||||
if(account.isGroupAccount) Nil else getGroupsByUserName(userName),
|
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 }))
|
context.loginAccount.exists(x => members.exists { member => member.userName == x.userName && member.isManager }))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -292,7 +292,7 @@ trait AccountControllerBase extends AccountManagementControllerBase {
|
|||||||
*/
|
*/
|
||||||
post("/new", newRepositoryForm)(usersOnly { form =>
|
post("/new", newRepositoryForm)(usersOnly { form =>
|
||||||
LockUtil.lock(s"${form.owner}/${form.name}/create"){
|
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 ownerAccount = getAccountByUserName(form.owner).get
|
||||||
val loginAccount = context.loginAccount.get
|
val loginAccount = context.loginAccount.get
|
||||||
val loginUserName = loginAccount.userName
|
val loginUserName = loginAccount.userName
|
||||||
|
|||||||
@@ -141,8 +141,8 @@ case class Context(settings: SystemSettingsService.SystemSettings, loginAccount:
|
|||||||
|
|
||||||
val path = settings.baseUrl.getOrElse(request.getServletContext.getContextPath)
|
val path = settings.baseUrl.getOrElse(request.getServletContext.getContextPath)
|
||||||
val currentPath = request.getRequestURI.substring(request.getContextPath.length)
|
val currentPath = request.getRequestURI.substring(request.getContextPath.length)
|
||||||
val baseURL = settings.baseUrl.getOrElse(request.getRequestURL.substring(0, request.getRequestURL.length - request.getRequestURI.length))
|
val baseUrl = settings.baseUrl(request)
|
||||||
val host = new java.net.URL(baseURL).getHost
|
val host = new java.net.URL(baseUrl).getHost
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get object from cache.
|
* Get object from cache.
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ trait DashboardControllerBase extends ControllerBase {
|
|||||||
)
|
)
|
||||||
|
|
||||||
val userName = context.loginAccount.get.userName
|
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 filterUser = Map(filter -> userName)
|
||||||
val page = IssueSearchCondition.page(request)
|
val page = IssueSearchCondition.page(request)
|
||||||
//
|
//
|
||||||
@@ -80,7 +80,7 @@ trait DashboardControllerBase extends ControllerBase {
|
|||||||
}.copy(repo = repository))
|
}.copy(repo = repository))
|
||||||
|
|
||||||
val userName = context.loginAccount.get.userName
|
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 filterUser = Map(filter -> userName)
|
||||||
val page = IssueSearchCondition.page(request)
|
val page = IssueSearchCondition.page(request)
|
||||||
|
|
||||||
|
|||||||
@@ -21,8 +21,8 @@ trait IndexControllerBase extends ControllerBase {
|
|||||||
val loginAccount = context.loginAccount
|
val loginAccount = context.loginAccount
|
||||||
|
|
||||||
html.index(getRecentActivities(),
|
html.index(getRecentActivities(),
|
||||||
getVisibleRepositories(loginAccount, baseUrl),
|
getVisibleRepositories(loginAccount, context.baseUrl),
|
||||||
loginAccount.map{ account => getUserRepositories(account.userName, baseUrl) }.getOrElse(Nil)
|
loginAccount.map{ account => getUserRepositories(account.userName, context.baseUrl) }.getOrElse(Nil)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ trait IssuesControllerBase extends ControllerBase {
|
|||||||
|
|
||||||
// notifications
|
// notifications
|
||||||
Notifier().toNotify(repository, issueId, form.content.getOrElse("")){
|
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}")
|
redirect(s"/${owner}/${name}/issues/${issueId}")
|
||||||
@@ -342,13 +342,13 @@ trait IssuesControllerBase extends ControllerBase {
|
|||||||
case f =>
|
case f =>
|
||||||
content foreach {
|
content foreach {
|
||||||
f.toNotify(repository, issueId, _){
|
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}")
|
if(issue.isPullRequest) "pull" else "issues"}/${issueId}#comment-${commentId}")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
action foreach {
|
action foreach {
|
||||||
f.toNotify(repository, issueId, _){
|
f.toNotify(repository, issueId, _){
|
||||||
Notifier.msgStatus(s"${baseUrl}/${owner}/${name}/issues/${issueId}")
|
Notifier.msgStatus(s"${context.baseUrl}/${owner}/${name}/issues/${issueId}")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ trait PullRequestsControllerBase extends ControllerBase {
|
|||||||
pulls.html.mergeguide(
|
pulls.html.mergeguide(
|
||||||
checkConflictInPullRequest(owner, name, pullreq.branch, pullreq.requestUserName, name, pullreq.requestBranch, issueId),
|
checkConflictInPullRequest(owner, name, pullreq.branch, pullreq.requestUserName, name, pullreq.requestBranch, issueId),
|
||||||
pullreq,
|
pullreq,
|
||||||
s"${baseUrl}/git/${pullreq.requestUserName}/${pullreq.requestRepositoryName}.git")
|
s"${context.baseUrl}/git/${pullreq.requestUserName}/${pullreq.requestRepositoryName}.git")
|
||||||
}
|
}
|
||||||
} getOrElse NotFound
|
} getOrElse NotFound
|
||||||
})
|
})
|
||||||
@@ -178,7 +178,7 @@ trait PullRequestsControllerBase extends ControllerBase {
|
|||||||
pullreq.requestUserName, pullreq.requestRepositoryName, pullreq.commitIdTo)
|
pullreq.requestUserName, pullreq.requestRepositoryName, pullreq.commitIdTo)
|
||||||
|
|
||||||
// close issue by content of pull request
|
// 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){
|
if(pullreq.branch == defaultBranch){
|
||||||
commits.flatten.foreach { commit =>
|
commits.flatten.foreach { commit =>
|
||||||
closeIssuesFromMessage(commit.fullMessage, loginAccount.userName, owner, name)
|
closeIssuesFromMessage(commit.fullMessage, loginAccount.userName, owner, name)
|
||||||
@@ -201,7 +201,7 @@ trait PullRequestsControllerBase extends ControllerBase {
|
|||||||
|
|
||||||
// notifications
|
// notifications
|
||||||
Notifier().toNotify(repository, issueId, "merge"){
|
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}")
|
redirect(s"/${owner}/${name}/pull/${issueId}")
|
||||||
@@ -214,7 +214,7 @@ trait PullRequestsControllerBase extends ControllerBase {
|
|||||||
get("/:owner/:repository/compare")(referrersOnly { forkedRepository =>
|
get("/:owner/:repository/compare")(referrersOnly { forkedRepository =>
|
||||||
(forkedRepository.repository.originUserName, forkedRepository.repository.originRepositoryName) match {
|
(forkedRepository.repository.originUserName, forkedRepository.repository.originRepositoryName) match {
|
||||||
case (Some(originUserName), Some(originRepositoryName)) => {
|
case (Some(originUserName), Some(originRepositoryName)) => {
|
||||||
getRepository(originUserName, originRepositoryName, baseUrl).map { originRepository =>
|
getRepository(originUserName, originRepositoryName, context.baseUrl).map { originRepository =>
|
||||||
using(
|
using(
|
||||||
Git.open(getRepositoryDir(originUserName, originRepositoryName)),
|
Git.open(getRepositoryDir(originUserName, originRepositoryName)),
|
||||||
Git.open(getRepositoryDir(forkedRepository.owner, forkedRepository.name))
|
Git.open(getRepositoryDir(forkedRepository.owner, forkedRepository.name))
|
||||||
@@ -251,7 +251,7 @@ trait PullRequestsControllerBase extends ControllerBase {
|
|||||||
getForkedRepositories(forkedRepository.owner, forkedRepository.name).find(_._1 == originOwner).map(_._2)
|
getForkedRepositories(forkedRepository.owner, forkedRepository.name).find(_._1 == originOwner).map(_._2)
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
originRepository <- getRepository(originOwner, originRepositoryName, baseUrl)
|
originRepository <- getRepository(originOwner, originRepositoryName, context.baseUrl)
|
||||||
) yield {
|
) yield {
|
||||||
using(
|
using(
|
||||||
Git.open(getRepositoryDir(originRepository.owner, originRepository.name)),
|
Git.open(getRepositoryDir(originRepository.owner, originRepository.name)),
|
||||||
@@ -303,7 +303,7 @@ trait PullRequestsControllerBase extends ControllerBase {
|
|||||||
getForkedRepositories(forkedRepository.owner, forkedRepository.name).find(_._1 == originOwner).map(_._2)
|
getForkedRepositories(forkedRepository.owner, forkedRepository.name).find(_._1 == originOwner).map(_._2)
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
originRepository <- getRepository(originOwner, originRepositoryName, baseUrl)
|
originRepository <- getRepository(originOwner, originRepositoryName, context.baseUrl)
|
||||||
) yield {
|
) yield {
|
||||||
using(
|
using(
|
||||||
Git.open(getRepositoryDir(originRepository.owner, originRepository.name)),
|
Git.open(getRepositoryDir(originRepository.owner, originRepository.name)),
|
||||||
@@ -356,7 +356,7 @@ trait PullRequestsControllerBase extends ControllerBase {
|
|||||||
|
|
||||||
// notifications
|
// notifications
|
||||||
Notifier().toNotify(repository, issueId, form.content.getOrElse("")){
|
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}")
|
redirect(s"/${repository.owner}/${repository.name}/pull/${issueId}")
|
||||||
|
|||||||
@@ -304,7 +304,7 @@ trait RepositoryViewerControllerBase extends ControllerBase {
|
|||||||
getRepository(
|
getRepository(
|
||||||
repository.repository.originUserName.getOrElse(repository.owner),
|
repository.repository.originUserName.getOrElse(repository.owner),
|
||||||
repository.repository.originRepositoryName.getOrElse(repository.name),
|
repository.repository.originRepositoryName.getOrElse(repository.name),
|
||||||
baseUrl),
|
context.baseUrl),
|
||||||
getForkedRepositories(
|
getForkedRepositories(
|
||||||
repository.repository.originUserName.getOrElse(repository.owner),
|
repository.repository.originUserName.getOrElse(repository.owner),
|
||||||
repository.repository.originRepositoryName.getOrElse(repository.name)),
|
repository.repository.originRepositoryName.getOrElse(repository.name)),
|
||||||
|
|||||||
@@ -7,11 +7,7 @@ import javax.servlet.http.HttpServletRequest
|
|||||||
|
|
||||||
trait SystemSettingsService {
|
trait SystemSettingsService {
|
||||||
|
|
||||||
def baseUrl(implicit request: HttpServletRequest): String = loadSystemSettings().baseUrl.getOrElse {
|
def baseUrl(implicit request: HttpServletRequest): String = loadSystemSettings().baseUrl(request)
|
||||||
defining(request.getRequestURL.toString){ url =>
|
|
||||||
url.substring(0, url.length - (request.getRequestURI.length - request.getContextPath.length))
|
|
||||||
}
|
|
||||||
}.replaceFirst("/$", "")
|
|
||||||
|
|
||||||
def saveSystemSettings(settings: SystemSettings): Unit = {
|
def saveSystemSettings(settings: SystemSettings): Unit = {
|
||||||
defining(new java.util.Properties()){ props =>
|
defining(new java.util.Properties()){ props =>
|
||||||
@@ -110,7 +106,13 @@ object SystemSettingsService {
|
|||||||
sshPort: Option[Int],
|
sshPort: Option[Int],
|
||||||
smtp: Option[Smtp],
|
smtp: Option[Smtp],
|
||||||
ldapAuthentication: Boolean,
|
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(
|
case class Ldap(
|
||||||
host: String,
|
host: String,
|
||||||
|
|||||||
@@ -8,10 +8,10 @@
|
|||||||
|
|
||||||
@header(activities: List[model.Activity]) = {<id>tag:@context.host,2013:gitbucket</id>
|
@header(activities: List[model.Activity]) = {<id>tag:@context.host,2013:gitbucket</id>
|
||||||
<title>Gitbucket's activities</title>
|
<title>Gitbucket's activities</title>
|
||||||
<link type="application/atom+xml" rel="self" href="@context.baseURL/activities.atom"/>
|
<link type="application/atom+xml" rel="self" href="@context.baseUrl/activities.atom"/>
|
||||||
<author>
|
<author>
|
||||||
<name>Gitbucket</name>
|
<name>Gitbucket</name>
|
||||||
<uri>@context.baseURL</uri>
|
<uri>@context.baseUrl</uri>
|
||||||
</author>
|
</author>
|
||||||
<updated>@datetimeRFC3339(activities.map(_.activityDate).max)</updated>}
|
<updated>@datetimeRFC3339(activities.map(_.activityDate).max)</updated>}
|
||||||
|
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
<id>tag:@context.host,@date(activity.activityDate):activity:@activity.activityId</id>
|
<id>tag:@context.host,@date(activity.activityDate):activity:@activity.activityId</id>
|
||||||
<published>@datetimeRFC3339(activity.activityDate)</published>
|
<published>@datetimeRFC3339(activity.activityDate)</published>
|
||||||
<updated>@datetimeRFC3339(activity.activityDate)</updated>
|
<updated>@datetimeRFC3339(activity.activityDate)</updated>
|
||||||
<link type="text/html" rel="alternate" href="@context.baseURL/@activity.userName/@activity.repositoryName" />
|
<link type="text/html" rel="alternate" href="@context.baseUrl/@activity.userName/@activity.repositoryName" />
|
||||||
<title type="html">@activity.activityType</title>
|
<title type="html">@activity.activityType</title>
|
||||||
<author>
|
<author>
|
||||||
<name>@activity.activityUserName</name>
|
<name>@activity.activityUserName</name>
|
||||||
|
|||||||
Reference in New Issue
Block a user