[MM-56854] Add shell completion to mmctl user active|deactivate (#26358)

Co-authored-by: Mattermost Build <build@mattermost.com>
Этот коммит содержится в:
Ben Schumacher
2024-04-24 10:14:20 +02:00
коммит произвёл GitHub
родитель 8ba157f284
Коммит 92a6c6517d
4 изменённых файлов: 73 добавлений и 4 удалений

Просмотреть файл

@@ -32,8 +32,9 @@ var UserActivateCmd = &cobra.Command{
Long: "Activate users that have been deactivated.",
Example: ` user activate user@example.com
user activate username`,
RunE: withClient(userActivateCmdF),
Args: cobra.MinimumNArgs(1),
ValidArgsFunction: validateArgsWithClient(userActivateCompletionF),
Args: cobra.MinimumNArgs(1),
RunE: withClient(userActivateCmdF),
}
var UserDeactivateCmd = &cobra.Command{
@@ -42,8 +43,9 @@ var UserDeactivateCmd = &cobra.Command{
Long: "Deactivate users. Deactivated users are immediately logged out of all sessions and are unable to log back in.",
Example: ` user deactivate user@example.com
user deactivate username`,
RunE: withClient(userDeactivateCmdF),
Args: cobra.MinimumNArgs(1),
ValidArgsFunction: validateArgsWithClient(userDeactivateCompletionF),
Args: cobra.MinimumNArgs(1),
RunE: withClient(userDeactivateCmdF),
}
var UserCreateCmd = &cobra.Command{
@@ -427,6 +429,15 @@ func userActivateCmdF(c client.Client, command *cobra.Command, args []string) er
return changeUsersActiveStatus(c, args, true)
}
func userActivateCompletionF(ctx context.Context, c client.Client, cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
return fetchAndComplete(
func(ctx context.Context, c client.Client, page, perPage int) ([]*model.User, *model.Response, error) {
return c.GetUsersWithCustomQueryParameters(ctx, page, perPage, "inactive=true", "")
},
func(u *model.User) []string { return []string{u.Id, u.Username, u.Email} },
)(ctx, c, cmd, args, toComplete)
}
func changeUsersActiveStatus(c client.Client, userArgs []string, active bool) error {
var multiErr *multierror.Error
users, err := getUsersFromArgs(c, userArgs)
@@ -458,6 +469,15 @@ func userDeactivateCmdF(c client.Client, cmd *cobra.Command, args []string) erro
return changeUsersActiveStatus(c, args, false)
}
func userDeactivateCompletionF(ctx context.Context, c client.Client, cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
return fetchAndComplete(
func(ctx context.Context, c client.Client, page, perPage int) ([]*model.User, *model.Response, error) {
return c.GetUsersWithCustomQueryParameters(ctx, page, perPage, "active=true", "")
},
func(u *model.User) []string { return []string{u.Id, u.Username, u.Email} },
)(ctx, c, cmd, args, toComplete)
}
func userCreateCmdF(c client.Client, cmd *cobra.Command, args []string) error {
printer.SetSingle(true)