mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-01 11:06:06 +01:00
Comparing is accessible by users who can refer to the repository.
This commit is contained in:
@@ -201,7 +201,7 @@ trait PullRequestsControllerBase extends ControllerBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
get("/:owner/:repository/compare")(collaboratorsOnly { 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, baseUrl).map { originRepository =>
|
||||||
@@ -225,7 +225,7 @@ trait PullRequestsControllerBase extends ControllerBase {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
get("/:owner/:repository/compare/*...*")(collaboratorsOnly { repository =>
|
get("/:owner/:repository/compare/*...*")(referrersOnly { repository =>
|
||||||
val Seq(origin, forked) = multiParams("splat")
|
val Seq(origin, forked) = multiParams("splat")
|
||||||
val (originOwner, tmpOriginBranch) = parseCompareIdentifie(origin, repository.owner)
|
val (originOwner, tmpOriginBranch) = parseCompareIdentifie(origin, repository.owner)
|
||||||
val (forkedOwner, tmpForkedBranch) = parseCompareIdentifie(forked, repository.owner)
|
val (forkedOwner, tmpForkedBranch) = parseCompareIdentifie(forked, repository.owner)
|
||||||
@@ -264,7 +264,8 @@ trait PullRequestsControllerBase extends ControllerBase {
|
|||||||
checkConflict(originOwner, repository.name, originBranch, forkedOwner, repository.name, forkedBranch),
|
checkConflict(originOwner, repository.name, originBranch, forkedOwner, repository.name, forkedBranch),
|
||||||
repository,
|
repository,
|
||||||
originRepository,
|
originRepository,
|
||||||
forkedRepository)
|
forkedRepository,
|
||||||
|
hasWritePermission(repository.owner, repository.name, context.loginAccount))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case _ => NotFound
|
case _ => NotFound
|
||||||
|
|||||||
@@ -8,7 +8,8 @@
|
|||||||
hasConflict: Boolean,
|
hasConflict: Boolean,
|
||||||
repository: service.RepositoryService.RepositoryInfo,
|
repository: service.RepositoryService.RepositoryInfo,
|
||||||
originRepository: service.RepositoryService.RepositoryInfo,
|
originRepository: service.RepositoryService.RepositoryInfo,
|
||||||
forkedRepository: service.RepositoryService.RepositoryInfo)(implicit context: app.Context)
|
forkedRepository: service.RepositoryService.RepositoryInfo,
|
||||||
|
hasWritePermission: Boolean)(implicit context: app.Context)
|
||||||
@import context._
|
@import context._
|
||||||
@import view.helpers._
|
@import view.helpers._
|
||||||
@import org.eclipse.jgit.diff.DiffEntry.ChangeType
|
@import org.eclipse.jgit.diff.DiffEntry.ChangeType
|
||||||
@@ -44,7 +45,7 @@
|
|||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@if(commits.nonEmpty){
|
@if(commits.nonEmpty && hasWritePermission){
|
||||||
<div style="margin-bottom: 10px;" id="create-pull-request">
|
<div style="margin-bottom: 10px;" id="create-pull-request">
|
||||||
<a href="#" class="btn" id="show-form">Click to create a pull request for this comparison</a>
|
<a href="#" class="btn" id="show-form">Click to create a pull request for this comparison</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user