func (createRootUserCmd) Run(context *cmd.Context, client *cmd.Client) error { context.RawOutput() scheme, err := config.GetString("auth:scheme") if err != nil { scheme = "native" } app.AuthScheme, err = auth.GetScheme(scheme) if err != nil { return err } email := context.Args[0] user, err := auth.GetUserByEmail(email) if err == nil { err = addSuperRole(user) if err != nil { return err } fmt.Fprintln(context.Stdout, "Root user successfully updated.") } var confirm, password string if scheme == "native" { fmt.Fprint(context.Stdout, "Password: "******"\nConfirm: ") confirm, err = cmd.PasswordFromReader(context.Stdin) if err != nil { return err } fmt.Fprintln(context.Stdout) if password != confirm { return errors.New("Passwords didn't match.") } } user, err = app.AuthScheme.Create(&auth.User{ Email: email, Password: password, }) if err != nil { return err } err = addSuperRole(user) if err != nil { return err } fmt.Fprintln(context.Stdout, "Root user successfully created.") return nil }
func (c *changePassword) Run(context *cmd.Context, client *cmd.Client) error { url, err := cmd.GetURL("/users/password") if err != nil { return err } var body bytes.Buffer fmt.Fprint(context.Stdout, "Current password: "******"\nNew password: "******"\nConfirm: ") confirm, err := cmd.PasswordFromReader(context.Stdin) if err != nil { return err } fmt.Fprintln(context.Stdout) if new != confirm { return errors.New("New password and password confirmation didn't match.") } jsonBody := map[string]string{ "old": old, "new": new, } err = json.NewEncoder(&body).Encode(jsonBody) if err != nil { return err } request, err := http.NewRequest("PUT", url, &body) if err != nil { return err } _, err = client.Do(request) if err != nil { return err } fmt.Fprintln(context.Stdout, "Password successfully updated!") return nil }
func (c *userCreate) Run(context *cmd.Context, client *cmd.Client) error { context.RawOutput() url, err := cmd.GetURL("/users") if err != nil { return err } email := context.Args[0] fmt.Fprint(context.Stdout, "Password: "******"\nConfirm: ") confirm, err := cmd.PasswordFromReader(context.Stdin) if err != nil { return err } fmt.Fprintln(context.Stdout) if password != confirm { return errors.New("Passwords didn't match.") } b := bytes.NewBufferString(`{"email":"` + email + `", "password":"******"}`) request, err := http.NewRequest("POST", url, b) if err != nil { return err } resp, err := client.Do(request) if resp != nil { if resp.StatusCode == http.StatusNotFound || resp.StatusCode == http.StatusMethodNotAllowed { return errors.New("User creation is disabled.") } } if err != nil { return err } fmt.Fprintf(context.Stdout, `User "%s" successfully created!`+"\n", email) return nil }