更新
This commit is contained in:
1 parent
5718a00e31
commit
1850ac640e
226 files changed
+37772
-12071
No files matched your search
@@ -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)
|
||||
|
||||
Reference in new issue
Block a user