summaryrefslogtreecommitdiffstats
path: root/cmd
diff options
context:
space:
mode:
authorLanre Adelowo <adelowomailbox@gmail.com>2018-10-30 22:34:25 +0100
committertechknowlogick <hello@techknowlogick.com>2018-10-30 17:34:25 -0400
commite5daa2698fb27bb734d0788f48f15608f7fc170f (patch)
treeabfed33a764754c7f3481dfd04f4a05db26351c7 /cmd
parentd0f614a25bd0bb48f43f8039f016dacc46498645 (diff)
downloadgitea-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.go34
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,