178 lines
4.2 KiB
Go
178 lines
4.2 KiB
Go
package main
|
|
|
|
import (
|
|
"github.com/influxdata/influx-cli/v2/internal/cmd/user"
|
|
"github.com/influxdata/influx-cli/v2/pkg/cli/middleware"
|
|
"github.com/influxdata/influx-cli/v2/pkg/influxid"
|
|
"github.com/urfave/cli/v2"
|
|
)
|
|
|
|
func newUserCmd() *cli.Command {
|
|
return &cli.Command{
|
|
Name: "user",
|
|
Usage: "User management commands",
|
|
Subcommands: []*cli.Command{
|
|
newUserCreateCmd(),
|
|
newUserDeleteCmd(),
|
|
newUserListCmd(),
|
|
newUserUpdateCmd(),
|
|
newUserSetPasswordCmd(),
|
|
},
|
|
}
|
|
}
|
|
|
|
func newUserCreateCmd() *cli.Command {
|
|
var params user.CreateParams
|
|
return &cli.Command{
|
|
Name: "create",
|
|
Usage: "Create user",
|
|
Flags: append(
|
|
commonFlags(),
|
|
&cli.GenericFlag{
|
|
Name: "org-id",
|
|
Usage: "The ID of the organization",
|
|
EnvVars: []string{"INFLUX_ORG_ID"},
|
|
Value: ¶ms.OrgID,
|
|
},
|
|
&cli.StringFlag{
|
|
Name: "org",
|
|
Usage: "The name of the organization",
|
|
Aliases: []string{"o"},
|
|
EnvVars: []string{"INFLUX_ORG"},
|
|
Destination: ¶ms.OrgName,
|
|
},
|
|
&cli.StringFlag{
|
|
Name: "name",
|
|
Usage: "The user name",
|
|
Aliases: []string{"n"},
|
|
EnvVars: []string{"INFLUX_NAME"},
|
|
Required: true,
|
|
Destination: ¶ms.Name,
|
|
},
|
|
&cli.StringFlag{
|
|
Name: "password",
|
|
Usage: "The user password",
|
|
Aliases: []string{"p"},
|
|
Destination: ¶ms.Password,
|
|
},
|
|
),
|
|
Before: middleware.WithBeforeFns(withCli(), withApi(true)),
|
|
Action: func(ctx *cli.Context) error {
|
|
api := getAPI(ctx)
|
|
client := user.Client{
|
|
CLI: getCLI(ctx),
|
|
UsersApi: api.UsersApi,
|
|
OrganizationsApi: api.OrganizationsApi,
|
|
}
|
|
return client.Create(ctx.Context, ¶ms)
|
|
},
|
|
}
|
|
}
|
|
|
|
func newUserDeleteCmd() *cli.Command {
|
|
var id influxid.ID
|
|
return &cli.Command{
|
|
Name: "delete",
|
|
Usage: "Delete user",
|
|
Flags: append(
|
|
commonFlags(),
|
|
&cli.GenericFlag{
|
|
Name: "id",
|
|
Usage: "The user ID",
|
|
Aliases: []string{"i"},
|
|
Required: true,
|
|
Value: &id,
|
|
},
|
|
),
|
|
Before: middleware.WithBeforeFns(withCli(), withApi(true)),
|
|
Action: func(ctx *cli.Context) error {
|
|
client := user.Client{CLI: getCLI(ctx), UsersApi: getAPI(ctx).UsersApi}
|
|
return client.Delete(ctx.Context, id)
|
|
},
|
|
}
|
|
}
|
|
|
|
func newUserListCmd() *cli.Command {
|
|
var params user.ListParams
|
|
return &cli.Command{
|
|
Name: "list",
|
|
Aliases: []string{"find", "ls"},
|
|
Usage: "List users",
|
|
Flags: append(
|
|
commonFlags(),
|
|
&cli.GenericFlag{
|
|
Name: "id",
|
|
Usage: "The user ID",
|
|
Aliases: []string{"i"},
|
|
Value: ¶ms.Id,
|
|
},
|
|
&cli.StringFlag{
|
|
Name: "name",
|
|
Usage: "The user name",
|
|
Aliases: []string{"n"},
|
|
Destination: ¶ms.Name,
|
|
},
|
|
),
|
|
Before: middleware.WithBeforeFns(withCli(), withApi(true)),
|
|
Action: func(ctx *cli.Context) error {
|
|
client := user.Client{CLI: getCLI(ctx), UsersApi: getAPI(ctx).UsersApi}
|
|
return client.List(ctx.Context, ¶ms)
|
|
},
|
|
}
|
|
}
|
|
|
|
func newUserUpdateCmd() *cli.Command {
|
|
var params user.UpdateParmas
|
|
return &cli.Command{
|
|
Name: "update",
|
|
Flags: append(
|
|
commonFlags(),
|
|
&cli.GenericFlag{
|
|
Name: "id",
|
|
Usage: "The user ID",
|
|
Aliases: []string{"i"},
|
|
Required: true,
|
|
Value: ¶ms.Id,
|
|
},
|
|
&cli.StringFlag{
|
|
Name: "name",
|
|
Usage: "The user name",
|
|
Aliases: []string{"n"},
|
|
Destination: ¶ms.Name,
|
|
},
|
|
),
|
|
Before: middleware.WithBeforeFns(withCli(), withApi(true)),
|
|
Action: func(ctx *cli.Context) error {
|
|
client := user.Client{CLI: getCLI(ctx), UsersApi: getAPI(ctx).UsersApi}
|
|
return client.Update(ctx.Context, ¶ms)
|
|
},
|
|
}
|
|
}
|
|
|
|
func newUserSetPasswordCmd() *cli.Command {
|
|
var params user.SetPasswordParams
|
|
return &cli.Command{
|
|
Name: "password",
|
|
Flags: append(
|
|
commonFlagsNoPrint(),
|
|
&cli.GenericFlag{
|
|
Name: "id",
|
|
Usage: "The user ID",
|
|
Aliases: []string{"i"},
|
|
Value: ¶ms.Id,
|
|
},
|
|
&cli.StringFlag{
|
|
Name: "name",
|
|
Usage: "The user name",
|
|
Aliases: []string{"n"},
|
|
Destination: ¶ms.Name,
|
|
},
|
|
),
|
|
Before: middleware.WithBeforeFns(withCli(), withApi(true)),
|
|
Action: func(ctx *cli.Context) error {
|
|
client := user.Client{CLI: getCLI(ctx), UsersApi: getAPI(ctx).UsersApi}
|
|
return client.SetPassword(ctx.Context, ¶ms)
|
|
},
|
|
}
|
|
}
|