后台用户管理新增“人工实名
This commit is contained in:
@@ -3,14 +3,20 @@ package adminuser
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var (
|
||||
ErrDependencyUnavailable = errors.New("dependency unavailable")
|
||||
ErrInvalidUser = errors.New("invalid user")
|
||||
ErrRealnameNotRevocable = errors.New("realname not revocable")
|
||||
ErrDependencyUnavailable = errors.New("dependency unavailable")
|
||||
ErrInvalidUser = errors.New("invalid user")
|
||||
ErrInvalidRealnameInput = errors.New("invalid realname input")
|
||||
ErrRealnameAlreadyVerified = errors.New("realname already verified")
|
||||
ErrRealnameNotRevocable = errors.New("realname not revocable")
|
||||
)
|
||||
|
||||
var manualRealnameIDPattern = regexp.MustCompile(`^\d{17}[\dXx]$`)
|
||||
|
||||
type Service struct {
|
||||
repo *Repository
|
||||
}
|
||||
@@ -65,3 +71,23 @@ func (s *Service) RevokeRealname(ctx context.Context, adminID uint64, userID uin
|
||||
}
|
||||
return s.repo.RevokeRealname(ctx, adminID, userID, req, meta)
|
||||
}
|
||||
|
||||
func (s *Service) ManualRealname(ctx context.Context, adminID uint64, userID uint64, req ManualRealnameRequest, meta AuditMeta) (*UserDTO, error) {
|
||||
if s.repo == nil {
|
||||
return nil, ErrDependencyUnavailable
|
||||
}
|
||||
if userID == 0 {
|
||||
return nil, ErrInvalidUser
|
||||
}
|
||||
if !validManualRealname(req.Name, req.IDNo) {
|
||||
return nil, ErrInvalidRealnameInput
|
||||
}
|
||||
return s.repo.ManualRealname(ctx, adminID, userID, req, meta)
|
||||
}
|
||||
|
||||
func validManualRealname(name string, idNo string) bool {
|
||||
name = strings.TrimSpace(name)
|
||||
idNo = strings.TrimSpace(idNo)
|
||||
nameLen := len([]rune(name))
|
||||
return nameLen >= 2 && nameLen <= 30 && manualRealnameIDPattern.MatchString(idNo)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user