grafana-cli: Add ability to read password from stdin to reset admin password (#26016)

* grafana-cli: Add ability to read password from stdin to reset admin password

Signed-off-by: m.nabokikh <maksim.nabokikh@flant.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
pull/26024/head
Maksim Nabokikh 5 years ago committed by GitHub
parent 66a00ee5c9
commit 3720c25638
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 7
      pkg/cmd/grafana-cli/commands/commands.go
  2. 19
      pkg/cmd/grafana-cli/commands/reset_password_command.go

@ -111,6 +111,13 @@ var adminCommands = []*cli.Command{
Name: "reset-admin-password",
Usage: "reset-admin-password <new password>",
Action: runDbCommand(resetPasswordCommand),
Flags: []cli.Flag{
&cli.BoolFlag{
Name: "password-from-stdin",
Usage: "Read the password from stdin",
Value: false,
},
},
},
{
Name: "data-migration",

@ -1,7 +1,9 @@
package commands
import (
"bufio"
"fmt"
"os"
"github.com/fatih/color"
"github.com/grafana/grafana/pkg/bus"
@ -16,7 +18,22 @@ import (
const AdminUserId = 1
func resetPasswordCommand(c utils.CommandLine, sqlStore *sqlstore.SqlStore) error {
newPassword := c.Args().First()
newPassword := ""
if c.Bool("password-from-stdin") {
logger.Infof("New Password: ")
scanner := bufio.NewScanner(os.Stdin)
if ok := scanner.Scan(); !ok {
if err := scanner.Err(); err != nil {
return fmt.Errorf("can't read password from stdin: %w", err)
}
return fmt.Errorf("can't read password from stdin")
}
newPassword = scanner.Text()
} else {
newPassword = c.Args().First()
}
password := models.Password(newPassword)
if password.IsWeak() {

Loading…
Cancel
Save