This commit is contained in:
hero920103 committed 2026-10-19 01:13:17 +08:00
1 parent 5718a00e31
commit 1850ac640e
226 files changed
+37772 -12071

No files matched your search

+18 -30
View File
@@ -7,6 +7,7 @@ import (
"strconv"
"strings"
"server/pkg/identity"
"server/pkg/jwtutil"
"server/services"
@@ -15,7 +16,6 @@ import (
// 控制器层专用错误,仅用于响应转换
var (
errOaDocUnauthorized = errors.New("未登录或无权限")
errOaDocBadID = errors.New("无效ID")
errOaDocBadParam = errors.New("参数错误")
)
@@ -27,22 +27,7 @@ type BackendOaDocumentController struct {
}
func (c *BackendOaDocumentController) oaDocClaims() (*jwtutil.Claims, error) {
auth := c.Ctx.Request.Header.Get("Authorization")
if auth == "" {
return nil, errOaDocUnauthorized
}
parts := strings.SplitN(auth, " ", 2)
if len(parts) != 2 || parts[0] != "Bearer" {
return nil, errOaDocUnauthorized
}
claims, err := jwtutil.ParseToken(parts[1])
if err != nil {
return nil, err
}
if claims.UserType != "backend" {
return nil, errOaDocUnauthorized
}
return claims, nil
return identity.Claims(c.Ctx.Request.Header.Get("Authorization"), identity.EndBackend)
}
func (c *BackendOaDocumentController) oaDocOk(data interface{}) {
@@ -54,20 +39,23 @@ func (c *BackendOaDocumentController) oaDocOk(data interface{}) {
func (c *BackendOaDocumentController) oaDocFail(err error) {
status, code, msg := 400, 400, "操作失败"
if err != nil {
switch err {
case errOaDocUnauthorized:
status, code, msg = 401, 401, "未登录或无权限"
case services.ErrDocNotFound, services.ErrDocLinkNotFound,
services.ErrDocCategoryNotFound, services.ErrDocCategoryInvalid,
services.ErrDocLinkTargetNotFound:
status, code, msg = 404, 404, err.Error()
case services.ErrDocLinkDuplicate:
status, code, msg = 409, 409, err.Error()
case services.ErrDocCategorySystem, services.ErrDocCategorySystemLocked,
services.ErrDocCategoryNameKept:
status, code, msg = 403, 403, err.Error()
default:
if identity.IsAuth(err) {
status, code = identity.Status(err), identity.Status(err)
msg = err.Error()
} else {
switch err {
case services.ErrDocNotFound, services.ErrDocLinkNotFound,
services.ErrDocCategoryNotFound, services.ErrDocCategoryInvalid,
services.ErrDocLinkTargetNotFound:
status, code, msg = 404, 404, err.Error()
case services.ErrDocLinkDuplicate:
status, code, msg = 409, 409, err.Error()
case services.ErrDocCategorySystem, services.ErrDocCategorySystemLocked,
services.ErrDocCategoryNameKept:
status, code, msg = 403, 403, err.Error()
default:
msg = err.Error()
}
}
}
c.Ctx.Output.SetStatus(status)