Browse Source

Add change-password admin command (#1304)

* Add change-password admin command
tags/v1.21.12.1
Sandro Santilli Kim "BKC" Carlbäcker 8 years ago
parent
commit
e1586898b2
1 changed files with 52 additions and 0 deletions
  1. +52
    -0
      cmd/admin.go

+ 52
- 0
cmd/admin.go View File

@@ -23,6 +23,7 @@ var (
to make automatic initialization process more smoothly`,
Subcommands: []cli.Command{
subcmdCreateUser,
subcmdChangePassword,
},
}

@@ -57,8 +58,59 @@ to make automatic initialization process more smoothly`,
},
},
}

subcmdChangePassword = cli.Command{
Name: "change-password",
Usage: "Change a user's password",
Action: runChangePassword,
Flags: []cli.Flag{
cli.StringFlag{
Name: "username,u",
Value: "",
Usage: "The user to change password for",
},
cli.StringFlag{
Name: "password,p",
Value: "",
Usage: "New password to set for user",
},
},
}
)

func runChangePassword(c *cli.Context) error {
if !c.IsSet("password") {
return fmt.Errorf("Password is not specified")
} else if !c.IsSet("username") {
return fmt.Errorf("Username is not specified")
}

setting.NewContext()
models.LoadConfigs()

setting.NewXORMLogService(false)
if err := models.SetEngine(); err != nil {
return fmt.Errorf("models.SetEngine: %v", err)
}

uname := c.String("username")
user, err := models.GetUserByName(uname)
if err != nil {
return fmt.Errorf("%v", err)
}
user.Passwd = c.String("password")
if user.Salt, err = models.GetUserSalt(); err != nil {
return fmt.Errorf("%v", err)
}
user.EncodePasswd()
if err := models.UpdateUser(user); err != nil {
return fmt.Errorf("%v", err)
}

fmt.Printf("User '%s' password has been successfully updated!\n", uname)
return nil
}

func runCreateUser(c *cli.Context) error {
if !c.IsSet("name") {
return fmt.Errorf("Username is not specified")


Loading…
Cancel
Save