reset_password.go 943 B

1234567891011121314151617181920212223242526272829303132333435363738
  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. "fmt"
  6. "miniflux.app/v2/internal/model"
  7. "miniflux.app/v2/internal/storage"
  8. "miniflux.app/v2/internal/validator"
  9. )
  10. func resetPassword(store *storage.Storage) {
  11. username, password := askCredentials()
  12. user, err := store.UserByUsername(username)
  13. if err != nil {
  14. printErrorAndExit(err)
  15. }
  16. if user == nil {
  17. printErrorAndExit(fmt.Errorf("user not found"))
  18. }
  19. userModificationRequest := &model.UserModificationRequest{
  20. Password: &password,
  21. }
  22. if validationErr := validator.ValidateUserModification(store, user.ID, userModificationRequest); validationErr != nil {
  23. printErrorAndExit(validationErr.Error())
  24. }
  25. user.Password = password
  26. if err := store.UpdateUser(user); err != nil {
  27. printErrorAndExit(err)
  28. }
  29. fmt.Println("Password changed!")
  30. }