|
|
|
@ -329,8 +329,27 @@ func ServCommand(ctx *macaron.Context) { |
|
|
|
|
results.RepoID = repo.ID |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Finally if we're trying to touch the wiki we should init it
|
|
|
|
|
if results.IsWiki { |
|
|
|
|
// Ensure the wiki is enabled before we allow access to it
|
|
|
|
|
if _, err := repo.GetUnit(models.UnitTypeWiki); err != nil { |
|
|
|
|
if models.IsErrUnitTypeNotExist(err) { |
|
|
|
|
ctx.JSON(http.StatusForbidden, map[string]interface{}{ |
|
|
|
|
"results": results, |
|
|
|
|
"type": "ErrForbidden", |
|
|
|
|
"err": "repository wiki is disabled", |
|
|
|
|
}) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
log.Error("Failed to get the wiki unit in %-v Error: %v", repo, err) |
|
|
|
|
ctx.JSON(http.StatusInternalServerError, map[string]interface{}{ |
|
|
|
|
"results": results, |
|
|
|
|
"type": "InternalServerError", |
|
|
|
|
"err": fmt.Sprintf("Failed to get the wiki unit in %s/%s Error: %v", ownerName, repoName, err), |
|
|
|
|
}) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Finally if we're trying to touch the wiki we should init it
|
|
|
|
|
if err = wiki_service.InitWiki(repo); err != nil { |
|
|
|
|
log.Error("Failed to initialize the wiki in %-v Error: %v", repo, err) |
|
|
|
|
ctx.JSON(http.StatusInternalServerError, map[string]interface{}{ |
|
|
|
|