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>
This commit is contained in:
Maksim Nabokikh
2020-07-02 18:29:10 +04:00
committed by GitHub
parent 66a00ee5c9
commit 3720c25638
2 changed files with 25 additions and 1 deletions

View File

@@ -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() {