mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-06 21:45:50 +01:00
Merge branch 'master' of https://github.com/takezoe/gitbucket
Conflicts: src/main/scala/app/SettingsController.scala
This commit is contained in:
@@ -11,6 +11,7 @@ class WikiController extends WikiControllerBase
|
||||
trait WikiControllerBase extends ControllerBase {
|
||||
self: WikiService with RepositoryService with CollaboratorsOnlyAuthenticator =>
|
||||
|
||||
// TODO ユーザ名の先頭に_は使えないようにする
|
||||
case class WikiPageEditForm(pageName: String, content: String, message: Option[String], currentPageName: String)
|
||||
|
||||
val newForm = mapping(
|
||||
@@ -32,8 +33,8 @@ trait WikiControllerBase extends ControllerBase {
|
||||
val repository = params("repository")
|
||||
|
||||
getWikiPage(owner, repository, "Home") match {
|
||||
case Some(page) => wiki.html.wiki("Home", page, getRepository(owner, repository, servletContext).get)
|
||||
case None => wiki.html.wikiedit("Home", None, getRepository(owner, repository, servletContext).get)
|
||||
case Some(page) => wiki.html.wiki("Home", page, getRepository(owner, repository, servletContext).get, isWritable(owner, repository))
|
||||
case None => redirect("/%s/%s/wiki/Home/_edit".format(owner, repository))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,8 +44,8 @@ trait WikiControllerBase extends ControllerBase {
|
||||
val pageName = params("page")
|
||||
|
||||
getWikiPage(owner, repository, pageName) match {
|
||||
case Some(page) => wiki.html.wiki(pageName, page, getRepository(owner, repository, servletContext).get)
|
||||
case None => wiki.html.wikiedit(pageName, None, getRepository(owner, repository, servletContext).get)
|
||||
case Some(page) => wiki.html.wiki(pageName, page, getRepository(owner, repository, servletContext).get, isWritable(owner, repository))
|
||||
case None => redirect("/%s/%s/wiki/%s/_edit".format(owner, repository, pageName)) // TODO URLEncode
|
||||
}
|
||||
}
|
||||
|
||||
@@ -132,7 +133,7 @@ trait WikiControllerBase extends ControllerBase {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
|
||||
wiki.html.wikipages(getWikiPageList(owner, repository), getRepository(owner, repository, servletContext).get)
|
||||
wiki.html.wikipages(getWikiPageList(owner, repository), getRepository(owner, repository, servletContext).get, isWritable(owner, repository))
|
||||
}
|
||||
|
||||
get("/:owner/:repository/wiki/_history"){
|
||||
@@ -166,6 +167,15 @@ trait WikiControllerBase extends ControllerBase {
|
||||
}
|
||||
}
|
||||
|
||||
def isWritable(owner: String, repository: String): Boolean = {
|
||||
context.loginAccount match {
|
||||
case Some(a) if(a.userType == AccountService.Administrator) => true
|
||||
case Some(a) if(a.userName == owner) => true
|
||||
case Some(a) if(getCollaborators(owner, repository).contains(a.userName)) => true
|
||||
case _ => false
|
||||
}
|
||||
}
|
||||
|
||||
def unique: Constraint = new Constraint(){
|
||||
def validate(name: String, value: String): Option[String] = {
|
||||
if(getWikiPageList(params("owner"), params("repository")).contains(value)){
|
||||
|
||||
Reference in New Issue
Block a user