reset_password_command.go 942 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package commands
  2. import (
  3. "fmt"
  4. "github.com/fatih/color"
  5. "github.com/grafana/grafana/pkg/bus"
  6. "github.com/grafana/grafana/pkg/cmd/grafana-cli/logger"
  7. "github.com/grafana/grafana/pkg/models"
  8. "github.com/grafana/grafana/pkg/util"
  9. )
  10. func resetPasswordCommand(c CommandLine) error {
  11. newPassword := c.Args().First()
  12. if len(newPassword) < 4 {
  13. return fmt.Errorf("New password too short")
  14. }
  15. userQuery := models.GetUserByIdQuery{Id: 1}
  16. if err := bus.Dispatch(&userQuery); err != nil {
  17. return fmt.Errorf("Could not read user from database. Error: %v", err)
  18. }
  19. passwordHashed := util.EncodePassword(newPassword, userQuery.Result.Salt)
  20. cmd := models.ChangeUserPasswordCommand{
  21. UserId: 1,
  22. NewPassword: passwordHashed,
  23. }
  24. if err := bus.Dispatch(&cmd); err != nil {
  25. return fmt.Errorf("Failed to update user password")
  26. }
  27. logger.Infof("Admin password changed successfully %s", color.GreenString("✔"))
  28. return nil
  29. }