forked from Gitlink/gitea-1120-rc1
fix:wikies
This commit is contained in:
parent
2d5a3202bd
commit
d3f8e67e57
|
@ -8,8 +8,11 @@ package wikies
|
|||
|
||||
import (
|
||||
"code.gitea.io/gitea/models"
|
||||
repo_module "code.gitea.io/gitea/modules/repository"
|
||||
"code.gitea.io/gitea/modules/sync"
|
||||
"code.gitea.io/gitea/modules/util"
|
||||
"fmt"
|
||||
"github.com/unknwon/com"
|
||||
"os"
|
||||
|
||||
//"github.com/unknwon/com"
|
||||
|
@ -23,6 +26,36 @@ import (
|
|||
wiki_service "code.gitea.io/gitea/services/wiki"
|
||||
)
|
||||
|
||||
|
||||
|
||||
var (
|
||||
reservedWikiNames = []string{"_pages", "_new", "_edit", "raw"}
|
||||
wikiWorkingPool = sync.NewExclusivePool()
|
||||
)
|
||||
|
||||
|
||||
func nameAllowed(name string) error {
|
||||
if util.IsStringInSlice(name, reservedWikiNames) {
|
||||
return models.ErrWikiReservedName{
|
||||
Title: name,
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func InitWiki(repo *models.Repository) error {
|
||||
if repo.HasWiki() {
|
||||
return nil
|
||||
}
|
||||
|
||||
if err := git.InitRepository(repo.WikiPath(), true); err != nil {
|
||||
return fmt.Errorf("InitRepository: %v", err)
|
||||
} else if err = repo_module.CreateDelegateHooks(repo.WikiPath()); err != nil {
|
||||
return fmt.Errorf("createDelegateHooks: %v", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
func FindWikiRepoCommit(ctx *context.APIContext) (*git.Repository, *git.Commit, error) {
|
||||
wikiRepo, err := git.OpenRepository(ctx.Repo.Repository.WikiPath())
|
||||
if err != nil {
|
||||
|
@ -91,15 +124,15 @@ func EditWikiPage(doer *models.User, repo *models.Repository, oldWikiName,newWik
|
|||
return updateWikiPage(doer, repo, oldWikiName , newWikiName, content, message, false)
|
||||
}
|
||||
func updateWikiPage(doer *models.User, repo *models.Repository, oldWikiName, newWikiName, content, message string, isNew bool) (err error) {
|
||||
//if err = nameAllowed(newWikiName); err != nil {
|
||||
// return err
|
||||
//}
|
||||
//wikiWorkingPool.CheckIn(com.ToStr(repo.ID))
|
||||
//defer wikiWorkingPool.CheckOut(com.ToStr(repo.ID))
|
||||
//
|
||||
//if err = InitWiki(repo); err != nil {
|
||||
// return fmt.Errorf("InitWiki: %v", err)
|
||||
//}
|
||||
if err = nameAllowed(newWikiName); err != nil {
|
||||
return err
|
||||
}
|
||||
wikiWorkingPool.CheckIn(com.ToStr(repo.ID))
|
||||
defer wikiWorkingPool.CheckOut(com.ToStr(repo.ID))
|
||||
|
||||
if err = InitWiki(repo); err != nil {
|
||||
return fmt.Errorf("InitWiki: %v", err)
|
||||
}
|
||||
|
||||
hasMasterBranch := git.IsBranchExist(repo.WikiPath(), "master")
|
||||
|
||||
|
|
|
@ -211,7 +211,7 @@ func CreateWiki(ctx *context.APIContext, form api.WikiOption) {
|
|||
// "200":
|
||||
// "$ref": "#/responses/Wiki"
|
||||
|
||||
err2 := wikies.CreateWikiPage(ctx.User, ctx.Repo.Repository, form.Name, form.Content, form.CommitMessage)
|
||||
err2 := wiki_service.AddWikiPage(ctx.User, ctx.Repo.Repository, form.Name, form.Content, form.CommitMessage)
|
||||
if err2 != nil{
|
||||
ctx.ServerError("CreateWikiPage", err2)
|
||||
}
|
||||
|
@ -296,7 +296,7 @@ func EditWiki(ctx *context.APIContext, form api.WikiOption) {
|
|||
oldWikiName := wiki_service.NormalizeWikiName(ctx.Params(":page"))
|
||||
newWikiName := wiki_service.NormalizeWikiName(form.Name)
|
||||
|
||||
err2 := wikies.EditWikiPage(ctx.User, ctx.Repo.Repository, oldWikiName,newWikiName, form.Content, form.CommitMessage)
|
||||
err2 := wiki_service.EditWikiPage(ctx.User, ctx.Repo.Repository, oldWikiName,newWikiName, form.Content, form.CommitMessage)
|
||||
if err2 != nil{
|
||||
ctx.ServerError("EditWikiPage", err2)
|
||||
}
|
||||
|
@ -372,7 +372,7 @@ func DeleteWiki(ctx *context.APIContext) {
|
|||
// "$ref": "#/responses/notFound"
|
||||
|
||||
WikiPageName := ctx.Params(":page")
|
||||
err := wikies.DeleteWikiPage(ctx.User, ctx.Repo.Repository, WikiPageName)
|
||||
err := wiki_service.DeleteWikiPage(ctx.User, ctx.Repo.Repository, WikiPageName)
|
||||
if err != nil{
|
||||
ctx.Error(http.StatusInternalServerError,"DeleteWikiPage", err)
|
||||
return
|
||||
|
|
Loading…
Reference in New Issue