diff options
author | Lanre Adelowo <adelowomailbox@gmail.com> | 2018-10-30 22:34:25 +0100 |
---|---|---|
committer | techknowlogick <hello@techknowlogick.com> | 2018-10-30 17:34:25 -0400 |
commit | e5daa2698fb27bb734d0788f48f15608f7fc170f (patch) | |
tree | abfed33a764754c7f3481dfd04f4a05db26351c7 /cmd | |
parent | d0f614a25bd0bb48f43f8039f016dacc46498645 (diff) | |
download | gitea-e5daa2698fb27bb734d0788f48f15608f7fc170f.tar.gz gitea-e5daa2698fb27bb734d0788f48f15608f7fc170f.zip |
Generate random password (#5023)
* add random-password flag
* run make fmt
* add length cli flag rather than use a default value
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/admin.go | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/cmd/admin.go b/cmd/admin.go index 5ee20860ab..d8acce7788 100644 --- a/cmd/admin.go +++ b/cmd/admin.go @@ -6,6 +6,7 @@ package cmd import ( + "errors" "fmt" "os" "text/tabwriter" @@ -13,6 +14,7 @@ import ( "code.gitea.io/git" "code.gitea.io/gitea/models" "code.gitea.io/gitea/modules/auth/oauth2" + "code.gitea.io/gitea/modules/generate" "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/setting" @@ -60,9 +62,18 @@ var ( Usage: "Custom configuration file path", }, cli.BoolFlag{ + Name: "random-password", + Usage: "Generate a random password for the user", + }, + cli.BoolFlag{ Name: "must-change-password", Usage: "Force the user to change his/her password after initial login", }, + cli.IntFlag{ + Name: "random-password-length", + Usage: "Length of the random password to be generated", + Value: 12, + }, }, } @@ -277,10 +288,29 @@ func runChangePassword(c *cli.Context) error { } func runCreateUser(c *cli.Context) error { - if err := argsSet(c, "name", "password", "email"); err != nil { + if err := argsSet(c, "name", "email"); err != nil { return err } + if c.IsSet("password") && c.IsSet("random-password") { + return errors.New("cannot set both -random-password and -password flags") + } + + var password string + + if c.IsSet("password") { + password = c.String("password") + } else if c.IsSet("random-password") { + password, err := generate.GetRandomString(c.Int("random-password-length")) + if err != nil { + return err + } + + fmt.Printf("generated random password is '%s'\n", password) + } else { + return errors.New("must set either password or random-password flag") + } + if c.IsSet("config") { setting.CustomConf = c.String("config") } @@ -299,7 +329,7 @@ func runCreateUser(c *cli.Context) error { if err := models.CreateUser(&models.User{ Name: c.String("name"), Email: c.String("email"), - Passwd: c.String("password"), + Passwd: password, IsActive: true, IsAdmin: c.Bool("admin"), MustChangePassword: changePassword, |