mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
package commands
 | 
						|
 | 
						|
import (
 | 
						|
	"fmt"
 | 
						|
 | 
						|
	"github.com/fatih/color"
 | 
						|
	"github.com/grafana/grafana/pkg/bus"
 | 
						|
	"github.com/grafana/grafana/pkg/cmd/grafana-cli/logger"
 | 
						|
	"github.com/grafana/grafana/pkg/cmd/grafana-cli/utils"
 | 
						|
	"github.com/grafana/grafana/pkg/models"
 | 
						|
	"github.com/grafana/grafana/pkg/services/sqlstore"
 | 
						|
	"github.com/grafana/grafana/pkg/util"
 | 
						|
)
 | 
						|
 | 
						|
const AdminUserId = 1
 | 
						|
 | 
						|
func resetPasswordCommand(c utils.CommandLine, sqlStore *sqlstore.SqlStore) error {
 | 
						|
	newPassword := c.Args().First()
 | 
						|
 | 
						|
	password := models.Password(newPassword)
 | 
						|
	if password.IsWeak() {
 | 
						|
		return fmt.Errorf("New password is too short")
 | 
						|
	}
 | 
						|
 | 
						|
	userQuery := models.GetUserByIdQuery{Id: AdminUserId}
 | 
						|
 | 
						|
	if err := bus.Dispatch(&userQuery); err != nil {
 | 
						|
		return fmt.Errorf("Could not read user from database. Error: %v", err)
 | 
						|
	}
 | 
						|
 | 
						|
	passwordHashed := util.EncodePassword(newPassword, userQuery.Result.Salt)
 | 
						|
 | 
						|
	cmd := models.ChangeUserPasswordCommand{
 | 
						|
		UserId:      AdminUserId,
 | 
						|
		NewPassword: passwordHashed,
 | 
						|
	}
 | 
						|
 | 
						|
	if err := bus.Dispatch(&cmd); err != nil {
 | 
						|
		return fmt.Errorf("Failed to update user password")
 | 
						|
	}
 | 
						|
 | 
						|
	logger.Infof("\n")
 | 
						|
	logger.Infof("Admin password changed successfully %s", color.GreenString("✔"))
 | 
						|
 | 
						|
	return nil
 | 
						|
}
 |