// UpdateUserCore updates a user. (Applying the modifed data of user). func UpdateUserCore(user *model.User) (int, error) { user.Md5 = crypto.GenerateMD5Hash(user.Email) token, err := crypto.GenerateRandomToken32() if err != nil { return http.StatusInternalServerError, errors.New("Token not generated.") } user.Token = token user.TokenExpiration = timeHelper.FewDaysLater(config.AuthTokenExpirationDay) if db.ORM.Save(user).Error != nil { return http.StatusInternalServerError, errors.New("User is not updated.") } return http.StatusOK, nil }
// CreateUserFromForm creates a user from a registration form. func CreateUserFromForm(registrationForm RegistrationForm) (model.User, error) { var user model.User log.Debugf("registrationForm %+v\n", registrationForm) modelHelper.AssignValue(&user, ®istrationForm) user.Md5 = crypto.GenerateMD5Hash(user.Email) token, err := crypto.GenerateRandomToken32() if err != nil { return user, errors.New("Token not generated.") } user.Token = token user.TokenExpiration = timeHelper.FewDaysLater(config.AuthTokenExpirationDay) log.Debugf("user %+v\n", user) if db.ORM.Create(&user).Error != nil { return user, errors.New("User is not created.") } return user, nil }
// SendVerificationToUser sends an email verification token to user. func SendVerificationToUser(user model.User) (int, error) { var status int var err error user.ActivateUntil = timeHelper.TwentyFourHoursLater() user.ActivationToken, err = crypto.GenerateRandomToken32() if err != nil { return http.StatusInternalServerError, err } user.Activation = false log.Debugf("generated token : %s", user.ActivationToken) status, err = UpdateUserCore(&user) if err != nil { return status, err } err = SendEmailVerfication(user.Email, user.ActivationToken, "en-us") if err != nil { return http.StatusInternalServerError, err } return http.StatusOK, err }