func (s *SAMLAuthScheme) Create(user *auth.User) (*auth.User, error) { user.Password = "" if err := user.Create(); err != nil { return nil, err } return user, nil }
func hashPassword(u *auth.User) error { loadConfig() passwd, err := bcrypt.GenerateFromPassword([]byte(u.Password), cost) if err != nil { return err } u.Password = string(passwd) return nil }
// ResetPassword actually resets the password of the user. It needs the token // string. The new password will be a random string, that will be then sent to // the user email. func (s NativeScheme) ResetPassword(user *auth.User, resetToken string) error { if resetToken == "" { return auth.ErrInvalidToken } conn, err := db.Conn() if err != nil { return err } passToken, err := getPasswordToken(resetToken) if err != nil { return err } if passToken.UserEmail != user.Email { return auth.ErrInvalidToken } password := generatePassword(12) user.Password = password hashPassword(user) go sendNewPassword(user, password) passToken.Used = true conn.PasswordTokens().UpdateId(passToken.Token, passToken) return user.Update() }