reset_password.go 953 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. // SPDX-FileCopyrightText: Copyright The Miniflux Authors. All rights reserved.
  2. // SPDX-License-Identifier: Apache-2.0
  3. package cli // import "miniflux.app/v2/internal/cli"
  4. import (
  5. "errors"
  6. "fmt"
  7. "miniflux.app/v2/internal/model"
  8. "miniflux.app/v2/internal/storage"
  9. "miniflux.app/v2/internal/validator"
  10. )
  11. func resetPassword(store *storage.Storage) {
  12. username, password := askCredentials()
  13. user, err := store.UserByUsername(username)
  14. if err != nil {
  15. printErrorAndExit(err)
  16. }
  17. if user == nil {
  18. printErrorAndExit(errors.New("user not found"))
  19. }
  20. userModificationRequest := &model.UserModificationRequest{
  21. Password: &password,
  22. }
  23. if validationErr := validator.ValidateUserModification(store, user.ID, userModificationRequest); validationErr != nil {
  24. printErrorAndExit(validationErr.Error())
  25. }
  26. user.Password = password
  27. if err := store.UpdateUser(user); err != nil {
  28. printErrorAndExit(err)
  29. }
  30. fmt.Println("Password changed!")
  31. }