MCPcopy
hub / github.com/koderover/zadig / CreateUser

Function CreateUser

pkg/microservice/user/core/service/permission/user.go:875–925  ·  view source on GitHub ↗
(args *User, logger *zap.SugaredLogger)

Source from the content-addressed store, hash-verified

873}
874
875func CreateUser(args *User, logger *zap.SugaredLogger) (*models.User, error) {
876 uid, _ := uuid.NewUUID()
877 user := &models.User{
878 Name: args.Name,
879 Email: args.Email,
880 IdentityType: config.SystemIdentityType,
881 Phone: args.Phone,
882 Account: args.Account,
883 UID: uid.String(),
884 }
885
886 matched, err := isValidStrongPassword(args.Password)
887 if err != nil {
888 return nil, e.ErrCreateUser.AddErr(err)
889 }
890 if !matched {
891 return nil, e.ErrCreateUser.AddDesc("密码必须包含大小写字母和数字,且长度不小于8位")
892 }
893
894 tx := repository.DB.Begin()
895 defer func() {
896 if r := recover(); r != nil {
897 tx.Rollback()
898 }
899 }()
900 err = orm.CreateUser(user, tx)
901 if err != nil {
902 tx.Rollback()
903 logger.Errorf("CreateUser CreateUser :%v error, error msg:%s", user, err.Error())
904 var mysqlErr *mysql.MySQLError
905 if errors.As(err, &mysqlErr) && mysqlErr.Number == 1062 {
906 return nil, e.ErrCreateUser.AddErr(err).AddDesc("存在相同用户名")
907 }
908 return nil, e.ErrCreateUser.AddErr(err)
909 }
910 hashedPassword, _ := bcrypt.GenerateFromPassword([]byte(args.Password), bcrypt.DefaultCost)
911 userLogin := &models.UserLogin{
912 UID: user.UID,
913 Password: string(hashedPassword),
914 LastLoginTime: 0,
915 LoginId: getLoginId(user, config.AccountLoginType),
916 LoginType: int(config.AccountLoginType),
917 }
918 err = orm.CreateUserLogin(userLogin, tx)
919 if err != nil {
920 tx.Rollback()
921 logger.Errorf("CreateUser CreateUserLogin:%v error, error msg:%s", user, err.Error())
922 return nil, err
923 }
924 return user, tx.Commit().Error
925}
926
927func UpdateUser(uid string, args *UpdateUserInfo, _ *zap.SugaredLogger) error {
928 updates := make(map[string]interface{})

Callers 2

CreateUserFunction · 0.92
SignUpFunction · 0.92

Calls 9

CreateUserFunction · 0.92
CreateUserLoginFunction · 0.92
isValidStrongPasswordFunction · 0.85
getLoginIdFunction · 0.85
AddErrMethod · 0.80
AddDescMethod · 0.80
ErrorMethod · 0.65
StringMethod · 0.45
ErrorfMethod · 0.45

Tested by

no test coverage detected