mirror of https://github.com/mindoc-org/mindoc.git
完善错误的提示
parent
4a8d044d14
commit
3e9e5558ab
|
@ -45,7 +45,7 @@ func (c *DocumentController) Index() {
|
|||
token := c.GetString("token")
|
||||
|
||||
if identify == "" {
|
||||
c.Abort("404")
|
||||
c.ShowErrorPage(404,"项目不存在或已删除")
|
||||
}
|
||||
|
||||
// 如果没有开启匿名访问则跳转到登录
|
||||
|
@ -80,10 +80,13 @@ func (c *DocumentController) Index() {
|
|||
tree, err := models.NewDocument().CreateDocumentTreeForHtml(bookResult.BookId, selected)
|
||||
|
||||
if err != nil {
|
||||
beego.Error(err)
|
||||
c.Abort("500")
|
||||
if err == orm.ErrNoRows {
|
||||
c.ShowErrorPage(404,"生成项目文档树时出错")
|
||||
} else {
|
||||
beego.Error("生成项目文档树时出错 -> ",err)
|
||||
c.ShowErrorPage(500,"生成项目文档树时出错")
|
||||
}
|
||||
}
|
||||
|
||||
c.Data["Model"] = bookResult
|
||||
c.Data["Result"] = template.HTML(tree)
|
||||
|
||||
|
@ -100,7 +103,7 @@ func (c *DocumentController) Read() {
|
|||
c.Data["DocumentId"] = id
|
||||
|
||||
if identify == "" || id == "" {
|
||||
c.Abort("404")
|
||||
c.ShowErrorPage(404,"项目不存或已删除")
|
||||
}
|
||||
|
||||
// 如果没有开启匿名访问则跳转到登录
|
||||
|
@ -118,19 +121,23 @@ func (c *DocumentController) Read() {
|
|||
if docId, err := strconv.Atoi(id); err == nil {
|
||||
doc, err = doc.FromCacheById(docId)
|
||||
if err != nil {
|
||||
beego.Error(err)
|
||||
c.Abort("500")
|
||||
beego.Error("从缓存中读取文档时失败 ->",err)
|
||||
c.ShowErrorPage(500,"文档不存在或已删除")
|
||||
}
|
||||
} else {
|
||||
doc, err = doc.FromCacheByIdentify(id,bookResult.BookId)
|
||||
if err != nil {
|
||||
beego.Error(err)
|
||||
c.Abort("500")
|
||||
if err == orm.ErrNoRows {
|
||||
c.ShowErrorPage(404,"文档不存在或已删除")
|
||||
}else{
|
||||
beego.Error("从缓存查询文档时出错 ->" ,err)
|
||||
c.ShowErrorPage(500,"未知异常")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if doc.BookId != bookResult.BookId {
|
||||
c.Abort("403")
|
||||
c.ShowErrorPage(404,"文档不存在或已删除")
|
||||
}
|
||||
|
||||
attach, err := models.NewAttachment().FindListByDocumentId(doc.DocumentId)
|
||||
|
@ -204,9 +211,10 @@ func (c *DocumentController) Read() {
|
|||
|
||||
tree, err := models.NewDocument().CreateDocumentTreeForHtml(bookResult.BookId, doc.DocumentId)
|
||||
|
||||
if err != nil {
|
||||
beego.Error(err)
|
||||
c.Abort("500")
|
||||
if err != nil && err != orm.ErrNoRows {
|
||||
beego.Error("生成项目文档树时出错 ->",err)
|
||||
|
||||
c.ShowErrorPage(500,"生成项目文档树时出错")
|
||||
}
|
||||
|
||||
|
||||
|
@ -226,7 +234,7 @@ func (c *DocumentController) Edit() {
|
|||
|
||||
identify := c.Ctx.Input.Param(":key")
|
||||
if identify == "" {
|
||||
c.Abort("404")
|
||||
c.ShowErrorPage(404,"无法解析项目标识")
|
||||
}
|
||||
|
||||
bookResult := models.NewBookResult()
|
||||
|
@ -244,10 +252,13 @@ func (c *DocumentController) Edit() {
|
|||
bookResult, err = models.NewBookResult().FindByIdentify(identify, c.Member.MemberId)
|
||||
|
||||
if err != nil {
|
||||
beego.Error("DocumentController.Edit => ", err)
|
||||
c.Abort("403")
|
||||
if err == orm.ErrNoRows {
|
||||
c.ShowErrorPage(403, "项目不存在或没有权限")
|
||||
}else{
|
||||
beego.Error("查询项目时出错 -> ", err)
|
||||
c.ShowErrorPage(500,"查询项目时出错")
|
||||
}
|
||||
}
|
||||
|
||||
if bookResult.RoleId == conf.BookObserver {
|
||||
c.JsonResult(6002, "项目不存在或权限不足")
|
||||
}
|
||||
|
@ -545,14 +556,19 @@ func (c *DocumentController) DownloadAttachment() {
|
|||
// 判断项目公开状态
|
||||
book, err := models.NewBook().FindByFieldFirst("identify", identify)
|
||||
if err != nil {
|
||||
c.Abort("404")
|
||||
if err == orm.ErrNoRows {
|
||||
c.ShowErrorPage(404,"项目不存在或已删除")
|
||||
}else{
|
||||
beego.Error("查找项目时出错 ->",err)
|
||||
c.ShowErrorPage(500,"系统错误")
|
||||
}
|
||||
}
|
||||
|
||||
// 如果不是超级管理员则判断权限
|
||||
if c.Member == nil || c.Member.Role != conf.MemberSuperRole {
|
||||
// 如果项目是私有的,并且 token 不正确
|
||||
if (book.PrivatelyOwned == 1 && token == "") || (book.PrivatelyOwned == 1 && book.PrivateToken != token) {
|
||||
c.Abort("403")
|
||||
c.ShowErrorPage(403,"权限不足")
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -565,16 +581,16 @@ func (c *DocumentController) DownloadAttachment() {
|
|||
attachment, err := models.NewAttachment().Find(attachId)
|
||||
|
||||
if err != nil {
|
||||
beego.Error("DownloadAttachment => ", err)
|
||||
beego.Error("查找附件时出错 -> ", err)
|
||||
if err == orm.ErrNoRows {
|
||||
c.Abort("404")
|
||||
c.ShowErrorPage(404,"附件不存在或已删除")
|
||||
} else {
|
||||
c.Abort("500")
|
||||
c.ShowErrorPage(500,"查找附件时出错")
|
||||
}
|
||||
}
|
||||
|
||||
if attachment.BookId != bookId {
|
||||
c.Abort("404")
|
||||
c.ShowErrorPage(404,"附件不存在或已删除")
|
||||
}
|
||||
|
||||
c.Ctx.Output.Download(filepath.Join(conf.WorkingDirectory, attachment.FilePath), attachment.FileName)
|
||||
|
@ -826,7 +842,7 @@ func (c *DocumentController) Export() {
|
|||
|
||||
identify := c.Ctx.Input.Param(":key")
|
||||
if identify == "" {
|
||||
c.Abort("404")
|
||||
c.ShowErrorPage(500,"参数错误")
|
||||
}
|
||||
|
||||
output := c.GetString("output")
|
||||
|
@ -845,10 +861,13 @@ func (c *DocumentController) Export() {
|
|||
if c.Member != nil && c.Member.IsAdministrator() {
|
||||
book, err := models.NewBook().FindByIdentify(identify)
|
||||
if err != nil {
|
||||
beego.Error(err)
|
||||
c.Abort("500")
|
||||
if err == orm.ErrNoRows {
|
||||
c.ShowErrorPage(404,"项目不存在")
|
||||
} else {
|
||||
beego.Error("查找项目时出错 ->",err)
|
||||
c.ShowErrorPage(500,"查找项目时出错")
|
||||
}
|
||||
}
|
||||
|
||||
bookResult = models.NewBookResult().ToBookResult(*book)
|
||||
} else {
|
||||
bookResult = isReadable(identify, token, c)
|
||||
|
@ -909,7 +928,7 @@ func (c *DocumentController) Export() {
|
|||
c.ShowErrorPage(200,"不支持的文件格式")
|
||||
}
|
||||
|
||||
c.Abort("404")
|
||||
c.ShowErrorPage(404,"项目没有导出文件")
|
||||
}
|
||||
|
||||
// 生成项目访问的二维码
|
||||
|
@ -920,20 +939,20 @@ func (c *DocumentController) QrCode() {
|
|||
|
||||
book, err := models.NewBook().FindByIdentify(identify)
|
||||
if err != nil || book.BookId <= 0 {
|
||||
c.Abort("404")
|
||||
c.ShowErrorPage(404,"项目不存在")
|
||||
}
|
||||
|
||||
uri := conf.URLFor("DocumentController.Index", ":key", identify)
|
||||
code, err := qr.Encode(uri, qr.L, qr.Unicode)
|
||||
if err != nil {
|
||||
beego.Error(err)
|
||||
c.Abort("500")
|
||||
beego.Error("生成二维码失败 ->",err)
|
||||
c.ShowErrorPage(500,"生成二维码失败")
|
||||
}
|
||||
|
||||
code, err = barcode.Scale(code, 150, 150)
|
||||
if err != nil {
|
||||
beego.Error(err)
|
||||
c.Abort("500")
|
||||
beego.Error("生成二维码失败 ->",err)
|
||||
c.ShowErrorPage(500,"生成二维码失败")
|
||||
}
|
||||
|
||||
c.Ctx.ResponseWriter.Header().Set("Content-Type", "image/png")
|
||||
|
@ -942,8 +961,8 @@ func (c *DocumentController) QrCode() {
|
|||
|
||||
err = png.Encode(c.Ctx.ResponseWriter, code)
|
||||
if err != nil {
|
||||
beego.Error(err)
|
||||
c.Abort("500")
|
||||
beego.Error("生成二维码失败 ->",err)
|
||||
c.ShowErrorPage(500,"生成二维码失败")
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1187,7 +1206,7 @@ func (c *DocumentController) Compare() {
|
|||
book, err := models.NewBook().FindByFieldFirst("identify", identify)
|
||||
if err != nil {
|
||||
beego.Error("DocumentController.Compare => ", err)
|
||||
c.Abort("403")
|
||||
c.ShowErrorPage(403,"权限不足")
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -1198,7 +1217,7 @@ func (c *DocumentController) Compare() {
|
|||
bookResult, err := models.NewBookResult().FindByIdentify(identify, c.Member.MemberId)
|
||||
if err != nil || bookResult.RoleId == conf.BookObserver {
|
||||
beego.Error("FindByIdentify => ", err)
|
||||
c.Abort("403")
|
||||
c.ShowErrorPage(403,"权限不足")
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -1259,14 +1278,14 @@ func EachFun(prefix, dpath string, c *DocumentController, book *models.BookResul
|
|||
f, err := os.OpenFile(fpath, os.O_CREATE|os.O_RDWR, 0777)
|
||||
if err != nil {
|
||||
beego.Error(err)
|
||||
c.Abort("500")
|
||||
c.ShowErrorPage(500,"系统错误")
|
||||
}
|
||||
|
||||
html, err := c.ExecuteViewPathTemplate("document/export.tpl", map[string]interface{}{"Model": book, "Lists": item, "BaseUrl": c.BaseUrl()})
|
||||
if err != nil {
|
||||
f.Close()
|
||||
beego.Error(err)
|
||||
c.Abort("500")
|
||||
c.ShowErrorPage(500,"系统错误")
|
||||
}
|
||||
|
||||
buf := bytes.NewReader([]byte(html))
|
||||
|
@ -1281,7 +1300,7 @@ func EachFun(prefix, dpath string, c *DocumentController, book *models.BookResul
|
|||
if err != nil {
|
||||
f.Close()
|
||||
beego.Error(err)
|
||||
c.Abort("500")
|
||||
c.ShowErrorPage(500,"系统错误")
|
||||
}
|
||||
|
||||
// html = strings.Replace(html, "<img src=\"/uploads", "<img src=\"" + c.BaseUrl() + "/uploads", -1)
|
||||
|
@ -1297,7 +1316,7 @@ func isReadable(identify, token string, c *DocumentController) *models.BookResul
|
|||
|
||||
if err != nil {
|
||||
beego.Error(err)
|
||||
c.Abort("500")
|
||||
c.ShowErrorPage(500,"项目不存在")
|
||||
}
|
||||
|
||||
// 如果文档是私有的
|
||||
|
@ -1318,10 +1337,10 @@ func isReadable(identify, token string, c *DocumentController) *models.BookResul
|
|||
if token != "" && strings.EqualFold(token, book.PrivateToken) {
|
||||
c.SetSession(identify, token)
|
||||
} else if token, ok := c.GetSession(identify).(string); !ok || !strings.EqualFold(token, book.PrivateToken) {
|
||||
c.Abort("403")
|
||||
c.ShowErrorPage(403,"权限不足")
|
||||
}
|
||||
} else if !is_ok {
|
||||
c.Abort("403")
|
||||
c.ShowErrorPage(403,"权限不足")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue