Opt: auth admin root middleware

pull/31/head
zijiren233 3 years ago
parent d2d9066613
commit 0575bdfbd3

@ -106,28 +106,6 @@ func AuthUser(Authorization string) (*op.User, error) {
return u, nil
}
func AuthAdmin(Authorization string) (*op.User, error) {
u, err := AuthUser(Authorization)
if err != nil {
return nil, err
}
if !u.IsAdmin() {
return nil, errors.New("user is not admin")
}
return u, nil
}
func AuthRoot(Authorization string) (*op.User, error) {
u, err := AuthUser(Authorization)
if err != nil {
return nil, err
}
if !u.IsRoot() {
return nil, errors.New("user is not admin")
}
return u, nil
}
func NewAuthUserToken(user *op.User) (string, error) {
if user.IsBanned() {
return "", errors.New("user banned")
@ -206,9 +184,13 @@ func AuthUserMiddleware(ctx *gin.Context) {
}
func AuthAdminMiddleware(ctx *gin.Context) {
user, err := AuthAdmin(ctx.GetHeader("Authorization"))
user, err := AuthUser(ctx.GetHeader("Authorization"))
if err != nil {
ctx.AbortWithStatusJSON(http.StatusForbidden, model.NewApiErrorResp(err))
ctx.AbortWithStatusJSON(http.StatusUnauthorized, model.NewApiErrorResp(err))
return
}
if !user.IsAdmin() {
ctx.AbortWithStatusJSON(http.StatusForbidden, model.NewApiErrorStringResp("user is not admin"))
return
}
@ -217,9 +199,13 @@ func AuthAdminMiddleware(ctx *gin.Context) {
}
func AuthRootMiddleware(ctx *gin.Context) {
user, err := AuthRoot(ctx.GetHeader("Authorization"))
user, err := AuthUser(ctx.GetHeader("Authorization"))
if err != nil {
ctx.AbortWithStatusJSON(http.StatusForbidden, model.NewApiErrorResp(err))
ctx.AbortWithStatusJSON(http.StatusUnauthorized, model.NewApiErrorResp(err))
return
}
if !user.IsRoot() {
ctx.AbortWithStatusJSON(http.StatusForbidden, model.NewApiErrorStringResp("user is not root"))
return
}

Loading…
Cancel
Save