mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-01 11:06:06 +01:00
Fix authentication for repository.
This commit is contained in:
@@ -23,103 +23,78 @@ trait RepositoryViewerControllerBase extends ControllerBase {
|
||||
/**
|
||||
* Returns converted HTML from Markdown for preview.
|
||||
*/
|
||||
post("/:owner/:repository/_preview")(referrersOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
val content = params("content")
|
||||
val enableWikiLink = params("enableWikiLink").toBoolean
|
||||
val enableCommitLink = params("enableCommitLink").toBoolean
|
||||
val enableIssueLink = params("enableIssueLink").toBoolean
|
||||
|
||||
post("/:owner/:repository/_preview")(referrersOnly { repository =>
|
||||
contentType = "text/html"
|
||||
view.helpers.markdown(content, getRepository(owner, repository, baseUrl).get,
|
||||
enableWikiLink, enableCommitLink, enableIssueLink)
|
||||
view.helpers.markdown(params("content"), repository,
|
||||
params("enableWikiLink").toBoolean,
|
||||
params("enableCommitLink").toBoolean,
|
||||
params("enableIssueLink").toBoolean)
|
||||
})
|
||||
|
||||
/**
|
||||
* Displays the file list of the repository root and the default branch.
|
||||
*/
|
||||
get("/:owner/:repository")(referrersOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
|
||||
fileList(owner, repository)
|
||||
fileList(_)
|
||||
})
|
||||
|
||||
/**
|
||||
* Displays the file list of the repository root and the specified branch.
|
||||
*/
|
||||
get("/:owner/:repository/tree/:id")(referrersOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
|
||||
fileList(owner, repository, params("id"))
|
||||
fileList(_, params("id"))
|
||||
})
|
||||
|
||||
/**
|
||||
* Displays the file list of the specified path and branch.
|
||||
*/
|
||||
get("/:owner/:repository/tree/:id/*")(referrersOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
|
||||
fileList(owner, repository, params("id"), multiParams("splat").head)
|
||||
fileList(_, params("id"), multiParams("splat").head)
|
||||
})
|
||||
|
||||
/**
|
||||
* Displays the commit list of the specified branch.
|
||||
*/
|
||||
get("/:owner/:repository/commits/:branch")(referrersOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
get("/:owner/:repository/commits/:branch")(referrersOnly { repository =>
|
||||
val branchName = params("branch")
|
||||
val page = params.getOrElse("page", "1").toInt
|
||||
|
||||
getRepository(owner, repository, baseUrl).map { repositoryInfo =>
|
||||
JGitUtil.withGit(getRepositoryDir(owner, repository)){ git =>
|
||||
JGitUtil.withGit(getRepositoryDir(repository.owner, repository.name)){ git =>
|
||||
val (logs, hasNext) = JGitUtil.getCommitLog(git, branchName, page, 30)
|
||||
|
||||
repo.html.commits(Nil, branchName, repositoryInfo, logs.splitWith{ (commit1, commit2) =>
|
||||
repo.html.commits(Nil, branchName, repository, logs.splitWith{ (commit1, commit2) =>
|
||||
view.helpers.date(commit1.time) == view.helpers.date(commit2.time)
|
||||
}, page, hasNext)
|
||||
}
|
||||
} getOrElse NotFound
|
||||
})
|
||||
|
||||
/**
|
||||
* Displays the commit list of the specified resource.
|
||||
*/
|
||||
get("/:owner/:repository/commits/:branch/*")(referrersOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
get("/:owner/:repository/commits/:branch/*")(referrersOnly { repository =>
|
||||
val branchName = params("branch")
|
||||
val path = multiParams("splat").head //.replaceFirst("^tree/.+?/", "")
|
||||
val page = params.getOrElse("page", "1").toInt
|
||||
|
||||
getRepository(owner, repository, baseUrl).map { repositoryInfo =>
|
||||
JGitUtil.withGit(getRepositoryDir(owner, repository)){ git =>
|
||||
JGitUtil.withGit(getRepositoryDir(repository.owner, repository.name)){ git =>
|
||||
val (logs, hasNext) = JGitUtil.getCommitLog(git, branchName, page, 30, path)
|
||||
|
||||
repo.html.commits(path.split("/").toList, branchName, repositoryInfo,
|
||||
repo.html.commits(path.split("/").toList, branchName, repository,
|
||||
logs.splitWith{ (commit1, commit2) =>
|
||||
view.helpers.date(commit1.time) == view.helpers.date(commit2.time)
|
||||
}, page, hasNext)
|
||||
}
|
||||
} getOrElse NotFound
|
||||
})
|
||||
|
||||
/**
|
||||
* Displays the file content of the specified branch or commit.
|
||||
*/
|
||||
get("/:owner/:repository/blob/:id/*")(referrersOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
get("/:owner/:repository/blob/:id/*")(referrersOnly { repository =>
|
||||
val id = params("id") // branch name or commit id
|
||||
val raw = params.get("raw").getOrElse("false").toBoolean
|
||||
val path = multiParams("splat").head //.replaceFirst("^tree/.+?/", "")
|
||||
|
||||
getRepository(owner, repository, baseUrl).map { repositoryInfo =>
|
||||
JGitUtil.withGit(getRepositoryDir(owner, repository)){ git =>
|
||||
JGitUtil.withGit(getRepositoryDir(repository.owner, repository.name)){ git =>
|
||||
val revCommit = JGitUtil.getRevCommitFromId(git, git.getRepository.resolve(id))
|
||||
|
||||
@scala.annotation.tailrec
|
||||
@@ -160,52 +135,42 @@ trait RepositoryViewerControllerBase extends ControllerBase {
|
||||
JGitUtil.ContentInfo(viewer, None)
|
||||
}
|
||||
|
||||
repo.html.blob(id, repositoryInfo, path.split("/").toList, content, new JGitUtil.CommitInfo(revCommit))
|
||||
repo.html.blob(id, repository, path.split("/").toList, content, new JGitUtil.CommitInfo(revCommit))
|
||||
}
|
||||
}
|
||||
} getOrElse NotFound
|
||||
})
|
||||
|
||||
/**
|
||||
* Displays details of the specified commit.
|
||||
*/
|
||||
get("/:owner/:repository/commit/:id")(referrersOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
get("/:owner/:repository/commit/:id")(referrersOnly { repository =>
|
||||
val id = params("id")
|
||||
|
||||
getRepository(owner, repository, baseUrl).map { repositoryInfo =>
|
||||
JGitUtil.withGit(getRepositoryDir(owner, repository)){ git =>
|
||||
JGitUtil.withGit(getRepositoryDir(repository.owner, repository.name)){ git =>
|
||||
val revCommit = JGitUtil.getRevCommitFromId(git, git.getRepository.resolve(id))
|
||||
|
||||
repo.html.commit(id, new JGitUtil.CommitInfo(revCommit),
|
||||
JGitUtil.getBranchesOfCommit(git, revCommit.getName), JGitUtil.getTagsOfCommit(git, revCommit.getName),
|
||||
repositoryInfo, JGitUtil.getDiffs(git, id))
|
||||
repository, JGitUtil.getDiffs(git, id))
|
||||
}
|
||||
} getOrElse NotFound
|
||||
})
|
||||
|
||||
/**
|
||||
* Displays tags.
|
||||
*/
|
||||
get("/:owner/:repository/tags")(referrersOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
|
||||
getRepository(owner, repository, baseUrl).map(repo.html.tags(_)) getOrElse NotFound
|
||||
repo.html.tags(_)
|
||||
})
|
||||
|
||||
/**
|
||||
* Download repository contents as an archive.
|
||||
*/
|
||||
get("/:owner/:repository/archive/:name")(referrersOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
get("/:owner/:repository/archive/:name")(referrersOnly { repository =>
|
||||
val name = params("name")
|
||||
|
||||
if(name.endsWith(".zip")){
|
||||
val revision = name.replaceFirst("\\.zip$", "")
|
||||
val workDir = getDownloadWorkDir(owner, repository, session.getId)
|
||||
val workDir = getDownloadWorkDir(repository.owner, repository.name, session.getId)
|
||||
if(workDir.exists){
|
||||
FileUtils.deleteDirectory(workDir)
|
||||
}
|
||||
@@ -214,7 +179,7 @@ trait RepositoryViewerControllerBase extends ControllerBase {
|
||||
// clone the repository
|
||||
val cloneDir = new File(workDir, revision)
|
||||
JGitUtil.withGit(Git.cloneRepository
|
||||
.setURI(getRepositoryDir(owner, repository).toURI.toString)
|
||||
.setURI(getRepositoryDir(repository.owner, repository.name).toURI.toString)
|
||||
.setDirectory(cloneDir)
|
||||
.call){ git =>
|
||||
|
||||
@@ -239,21 +204,20 @@ trait RepositoryViewerControllerBase extends ControllerBase {
|
||||
/**
|
||||
* Provides HTML of the file list.
|
||||
*
|
||||
* @param owner the repository owner
|
||||
* @param repository the repository name
|
||||
* @param repository the repository information
|
||||
* @param revstr the branch name or commit id(optional)
|
||||
* @param path the directory path (optional)
|
||||
* @return HTML of the file list
|
||||
*/
|
||||
private def fileList(owner: String, repository: String, revstr: String = "", path: String = ".") = {
|
||||
getRepository(owner, repository, baseUrl).map { repositoryInfo =>
|
||||
private def fileList(repository: RepositoryService.RepositoryInfo, revstr: String = "", path: String = ".") = {
|
||||
getRepository(repository.owner, repository.name, baseUrl).map { repositoryInfo =>
|
||||
val revision = if(revstr.isEmpty){
|
||||
repositoryInfo.repository.defaultBranch
|
||||
} else {
|
||||
revstr
|
||||
}
|
||||
|
||||
JGitUtil.withGit(getRepositoryDir(owner, repository)){ git =>
|
||||
JGitUtil.withGit(getRepositoryDir(repositoryInfo.owner, repositoryInfo.name)){ git =>
|
||||
// get latest commit
|
||||
val revCommit = JGitUtil.getRevCommitFromId(git, git.getRepository.resolve(revision))
|
||||
|
||||
@@ -261,7 +225,7 @@ trait RepositoryViewerControllerBase extends ControllerBase {
|
||||
|
||||
// process README.md
|
||||
val readme = files.find(_.name == "README.md").map { file =>
|
||||
new String(JGitUtil.getContent(Git.open(getRepositoryDir(owner, repository)), file.id, true).get, "UTF-8")
|
||||
new String(JGitUtil.getContent(Git.open(getRepositoryDir(repositoryInfo.owner, repositoryInfo.name)), file.id, true).get, "UTF-8")
|
||||
}
|
||||
|
||||
repo.html.files(
|
||||
|
||||
@@ -29,45 +29,30 @@ trait SettingsControllerBase extends ControllerBase {
|
||||
/**
|
||||
* Redirect to the Options page.
|
||||
*/
|
||||
get("/:owner/:repository/settings")(ownerOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
|
||||
redirect("/%s/%s/settings/options".format(owner, repository))
|
||||
get("/:owner/:repository/settings")(ownerOnly { repository =>
|
||||
redirect("/%s/%s/settings/options".format(repository.owner, repository.name))
|
||||
})
|
||||
|
||||
/**
|
||||
* Display the Options page.
|
||||
*/
|
||||
get("/:owner/:repository/settings/options")(ownerOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
|
||||
getRepository(owner, repository, baseUrl).map(settings.html.options(_)) getOrElse NotFound
|
||||
settings.html.options(_)
|
||||
})
|
||||
|
||||
/**
|
||||
* Save the repository options.
|
||||
*/
|
||||
post("/:owner/:repository/settings/options", optionsForm)(ownerOnly { form =>
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
|
||||
// save repository options
|
||||
saveRepositoryOptions(owner, repository, form.description, form.defaultBranch, form.isPrivate)
|
||||
|
||||
redirect("%s/%s/settings/options".format(owner, repository))
|
||||
post("/:owner/:repository/settings/options", optionsForm)(ownerOnly { (form, repository) =>
|
||||
saveRepositoryOptions(repository.owner, repository.name, form.description, form.defaultBranch, form.isPrivate)
|
||||
redirect("%s/%s/settings/options".format(repository.owner, repository.name))
|
||||
})
|
||||
|
||||
/**
|
||||
* Display the Collaborators page.
|
||||
*/
|
||||
get("/:owner/:repository/settings/collaborators")(ownerOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
|
||||
getRepository(owner, repository, baseUrl).map(
|
||||
settings.html.collaborators(getCollaborators(owner, repository), _)) getOrElse NotFound
|
||||
get("/:owner/:repository/settings/collaborators")(ownerOnly { repository =>
|
||||
settings.html.collaborators(getCollaborators(repository.owner, repository.name), repository)
|
||||
})
|
||||
|
||||
/**
|
||||
@@ -81,50 +66,37 @@ trait SettingsControllerBase extends ControllerBase {
|
||||
/**
|
||||
* Add the collaborator.
|
||||
*/
|
||||
post("/:owner/:repository/settings/collaborators/add", collaboratorForm)(ownerOnly { form =>
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
|
||||
addCollaborator(owner, repository, form.userName)
|
||||
redirect("/%s/%s/settings/collaborators".format(owner, repository))
|
||||
post("/:owner/:repository/settings/collaborators/add", collaboratorForm)(ownerOnly { (form, repository) =>
|
||||
addCollaborator(repository.owner, repository.name, form.userName)
|
||||
redirect("/%s/%s/settings/collaborators".format(repository.owner, repository.name))
|
||||
})
|
||||
|
||||
/**
|
||||
* Add the collaborator.
|
||||
*/
|
||||
get("/:owner/:repository/settings/collaborators/remove")(ownerOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
val userName = params("name")
|
||||
|
||||
removeCollaborator(owner, repository, userName)
|
||||
redirect("/%s/%s/settings/collaborators".format(owner, repository))
|
||||
get("/:owner/:repository/settings/collaborators/remove")(ownerOnly { repository =>
|
||||
removeCollaborator(repository.owner, repository.name, params("name"))
|
||||
redirect("/%s/%s/settings/collaborators".format(repository.owner, repository.name))
|
||||
})
|
||||
|
||||
/**
|
||||
* Display the delete repository page.
|
||||
*/
|
||||
get("/:owner/:repository/settings/delete")(ownerOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
|
||||
getRepository(owner, repository, baseUrl).map(settings.html.delete(_)) getOrElse NotFound
|
||||
settings.html.delete(_)
|
||||
})
|
||||
|
||||
/**
|
||||
* Delete the repository.
|
||||
*/
|
||||
post("/:owner/:repository/settings/delete")(ownerOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
post("/:owner/:repository/settings/delete")(ownerOnly { repository =>
|
||||
deleteRepository(repository.owner, repository.name)
|
||||
|
||||
deleteRepository(owner, repository)
|
||||
FileUtils.deleteDirectory(getRepositoryDir(repository.owner, repository.name))
|
||||
FileUtils.deleteDirectory(getWikiRepositoryDir(repository.owner, repository.name))
|
||||
FileUtils.deleteDirectory(getTemporaryDir(repository.owner, repository.name))
|
||||
|
||||
FileUtils.deleteDirectory(getRepositoryDir(owner, repository))
|
||||
FileUtils.deleteDirectory(getWikiRepositoryDir(owner, repository))
|
||||
FileUtils.deleteDirectory(getTemporaryDir(owner, repository))
|
||||
|
||||
redirect("/%s".format(owner))
|
||||
redirect("/%s".format(repository.owner))
|
||||
})
|
||||
|
||||
/**
|
||||
|
||||
@@ -27,140 +27,92 @@ trait WikiControllerBase extends ControllerBase {
|
||||
"currentPageName" -> trim(label("Current page name" , text(required)))
|
||||
)(WikiPageEditForm.apply)
|
||||
|
||||
get("/:owner/:repository/wiki")(referrersOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
|
||||
getRepository(owner, repository, baseUrl).map { repositoryInfo =>
|
||||
getWikiPage(owner, repository, "Home").map { page =>
|
||||
wiki.html.page("Home", page, repositoryInfo, hasWritePermission(owner, repository, context.loginAccount))
|
||||
} getOrElse redirect("/%s/%s/wiki/Home/_edit".format(owner, repository))
|
||||
} getOrElse NotFound
|
||||
get("/:owner/:repository/wiki")(referrersOnly { repository =>
|
||||
getWikiPage(repository.owner, repository.name, "Home").map { page =>
|
||||
wiki.html.page("Home", page, repository, hasWritePermission(repository.owner, repository.name, context.loginAccount))
|
||||
} getOrElse redirect("/%s/%s/wiki/Home/_edit".format(repository.owner, repository.name))
|
||||
})
|
||||
|
||||
get("/:owner/:repository/wiki/:page")(referrersOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
get("/:owner/:repository/wiki/:page")(referrersOnly { repository =>
|
||||
val pageName = params("page")
|
||||
|
||||
getRepository(owner, repository, baseUrl).map { repositoryInfo =>
|
||||
getWikiPage(owner, repository, pageName).map { page =>
|
||||
wiki.html.page(pageName, page, repositoryInfo, hasWritePermission(owner, repository, context.loginAccount))
|
||||
} getOrElse redirect("/%s/%s/wiki/%s/_edit".format(owner, repository, pageName)) // TODO URLEncode
|
||||
} getOrElse NotFound
|
||||
getWikiPage(repository.owner, repository.name, pageName).map { page =>
|
||||
wiki.html.page(pageName, page, repository, hasWritePermission(repository.owner, repository.name, context.loginAccount))
|
||||
} getOrElse redirect("/%s/%s/wiki/%s/_edit".format(repository.owner, repository.name, pageName)) // TODO URLEncode
|
||||
})
|
||||
|
||||
get("/:owner/:repository/wiki/:page/_history")(referrersOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
val page = params("page")
|
||||
get("/:owner/:repository/wiki/:page/_history")(referrersOnly { repository =>
|
||||
val pageName = params("page")
|
||||
|
||||
getRepository(owner, repository, baseUrl).map { repositoryInfo =>
|
||||
JGitUtil.withGit(getWikiRepositoryDir(owner, repository)){ git =>
|
||||
wiki.html.history(Some(page), JGitUtil.getCommitLog(git, "master", path = page + ".md")._1, repositoryInfo)
|
||||
JGitUtil.withGit(getWikiRepositoryDir(repository.owner, repository.name)){ git =>
|
||||
wiki.html.history(Some(pageName), JGitUtil.getCommitLog(git, "master", path = pageName + ".md")._1, repository)
|
||||
}
|
||||
} getOrElse NotFound
|
||||
})
|
||||
|
||||
get("/:owner/:repository/wiki/:page/_compare/:commitId")(referrersOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
val page = params("page")
|
||||
get("/:owner/:repository/wiki/:page/_compare/:commitId")(referrersOnly { repository =>
|
||||
val pageName = params("page")
|
||||
val commitId = params("commitId").split("\\.\\.\\.")
|
||||
|
||||
getRepository(owner, repository, baseUrl).map { repositoryInfo =>
|
||||
JGitUtil.withGit(getWikiRepositoryDir(owner, repository)){ git =>
|
||||
wiki.html.compare(Some(page), getWikiDiffs(git, commitId(0), commitId(1)), repositoryInfo)
|
||||
JGitUtil.withGit(getWikiRepositoryDir(repository.owner, repository.name)){ git =>
|
||||
wiki.html.compare(Some(pageName), getWikiDiffs(git, commitId(0), commitId(1)), repository)
|
||||
}
|
||||
} getOrElse NotFound
|
||||
})
|
||||
|
||||
get("/:owner/:repository/wiki/_compare/:commitId")(referrersOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
get("/:owner/:repository/wiki/_compare/:commitId")(referrersOnly { repository =>
|
||||
val commitId = params("commitId").split("\\.\\.\\.")
|
||||
|
||||
getRepository(owner, repository, baseUrl).map { repositoryInfo =>
|
||||
JGitUtil.withGit(getWikiRepositoryDir(owner, repository)){ git =>
|
||||
wiki.html.compare(None, getWikiDiffs(git, commitId(0), commitId(1)), repositoryInfo)
|
||||
JGitUtil.withGit(getWikiRepositoryDir(repository.owner, repository.name)){ git =>
|
||||
wiki.html.compare(None, getWikiDiffs(git, commitId(0), commitId(1)), repository)
|
||||
}
|
||||
} getOrElse NotFound
|
||||
})
|
||||
|
||||
get("/:owner/:repository/wiki/:page/_edit")(collaboratorsOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
val page = params("page")
|
||||
|
||||
getRepository(owner, repository, baseUrl).map(
|
||||
wiki.html.edit(page, getWikiPage(owner, repository, page), _)) getOrElse NotFound
|
||||
get("/:owner/:repository/wiki/:page/_edit")(collaboratorsOnly { repository =>
|
||||
val pageName = params("page")
|
||||
wiki.html.edit(pageName, getWikiPage(repository.owner, repository.name, pageName), repository)
|
||||
})
|
||||
|
||||
post("/:owner/:repository/wiki/_edit", editForm)(collaboratorsOnly { form =>
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
|
||||
saveWikiPage(owner, repository, form.currentPageName, form.pageName,
|
||||
post("/:owner/:repository/wiki/_edit", editForm)(collaboratorsOnly { (form, repository) =>
|
||||
saveWikiPage(repository.owner, repository.name, form.currentPageName, form.pageName,
|
||||
form.content, context.loginAccount.get, form.message.getOrElse(""))
|
||||
updateLastActivityDate(owner, repository)
|
||||
updateLastActivityDate(repository.owner, repository.name)
|
||||
|
||||
redirect("%s/%s/wiki/%s".format(owner, repository, form.pageName))
|
||||
redirect("%s/%s/wiki/%s".format(repository.owner, repository.name, form.pageName))
|
||||
})
|
||||
|
||||
get("/:owner/:repository/wiki/_new")(collaboratorsOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
|
||||
getRepository(owner, repository, baseUrl).map(wiki.html.edit("", None, _)) getOrElse NotFound
|
||||
wiki.html.edit("", None, _)
|
||||
})
|
||||
|
||||
post("/:owner/:repository/wiki/_new", newForm)(collaboratorsOnly { form =>
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
|
||||
saveWikiPage(owner, repository, form.currentPageName, form.pageName,
|
||||
post("/:owner/:repository/wiki/_new", newForm)(collaboratorsOnly { (form, repository) =>
|
||||
saveWikiPage(repository.owner, repository.name, form.currentPageName, form.pageName,
|
||||
form.content, context.loginAccount.get, form.message.getOrElse(""))
|
||||
updateLastActivityDate(repository.owner, repository.name)
|
||||
|
||||
redirect("%s/%s/wiki/%s".format(owner, repository, form.pageName))
|
||||
redirect("%s/%s/wiki/%s".format(repository.owner, repository.name, form.pageName))
|
||||
})
|
||||
|
||||
get("/:owner/:repository/wiki/:page/_delete")(collaboratorsOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
val page = params("page")
|
||||
get("/:owner/:repository/wiki/:page/_delete")(collaboratorsOnly { repository =>
|
||||
val pageName = params("page")
|
||||
|
||||
deleteWikiPage(owner, repository, page, context.loginAccount.get.userName, "Delete %s".format(page))
|
||||
updateLastActivityDate(owner, repository)
|
||||
deleteWikiPage(repository.owner, repository.name, pageName, context.loginAccount.get.userName, "Delete %s".format(pageName))
|
||||
updateLastActivityDate(repository.owner, repository.name)
|
||||
|
||||
redirect("%s/%s/wiki".format(owner, repository))
|
||||
redirect("%s/%s/wiki".format(repository.owner, repository.name))
|
||||
})
|
||||
|
||||
get("/:owner/:repository/wiki/_pages")(referrersOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
|
||||
getRepository(owner, repository, baseUrl).map {
|
||||
wiki.html.pages(getWikiPageList(owner, repository), _, hasWritePermission(owner, repository, context.loginAccount))
|
||||
} getOrElse NotFound
|
||||
get("/:owner/:repository/wiki/_pages")(referrersOnly { repository =>
|
||||
wiki.html.pages(getWikiPageList(repository.owner, repository.name), repository,
|
||||
hasWritePermission(repository.owner, repository.name, context.loginAccount))
|
||||
})
|
||||
|
||||
get("/:owner/:repository/wiki/_history")(referrersOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
|
||||
getRepository(owner, repository, baseUrl).map { repositoryInfo =>
|
||||
JGitUtil.withGit(getWikiRepositoryDir(owner, repository)){ git =>
|
||||
wiki.html.history(None, JGitUtil.getCommitLog(git, "master")._1, repositoryInfo)
|
||||
get("/:owner/:repository/wiki/_history")(referrersOnly { repository =>
|
||||
JGitUtil.withGit(getWikiRepositoryDir(repository.owner, repository.name)){ git =>
|
||||
wiki.html.history(None, JGitUtil.getCommitLog(git, "master")._1, repository)
|
||||
}
|
||||
} getOrElse NotFound
|
||||
})
|
||||
|
||||
get("/:owner/:repository/wiki/_blob/*")(referrersOnly {
|
||||
val owner = params("owner")
|
||||
val repository = params("repository")
|
||||
val path = multiParams("splat").head
|
||||
|
||||
getFileContent(owner, repository, path).map { content =>
|
||||
get("/:owner/:repository/wiki/_blob/*")(referrersOnly { repository =>
|
||||
getFileContent(repository.owner, repository.name, multiParams("splat").head).map { content =>
|
||||
contentType = "application/octet-stream"
|
||||
content
|
||||
} getOrElse NotFound
|
||||
|
||||
Reference in New Issue
Block a user