Gh 19916 mmctl list deactivated users only (#26646)

Этот коммит содержится в:
Ezekiel
2024-04-30 20:49:50 +08:00
коммит произвёл GitHub
родитель 10a59619c7
Коммит b6a8965969
6 изменённых файлов: 352 добавлений и 88 удалений

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

@@ -8,6 +8,7 @@ import (
"encoding/json"
"fmt"
"net/http"
"net/url"
"os"
"sort"
@@ -320,6 +321,7 @@ func init() {
ListUsersCmd.Flags().Int("per-page", DefaultPageSize, "Number of users to be fetched")
ListUsersCmd.Flags().Bool("all", false, "Fetch all users. --page flag will be ignore if provided")
ListUsersCmd.Flags().String("team", "", "If supplied, only users belonging to this team will be listed")
ListUsersCmd.Flags().Bool("inactive", false, "If supplied, only users which are inactive will be fetch")
UserConvertCmd.Flags().Bool("bot", false, "If supplied, convert users to bots")
UserConvertCmd.Flags().Bool("user", false, "If supplied, convert a bot to a user")
@@ -798,6 +800,16 @@ auth_service: {{.AuthService}}`
return nil
}
func ResetListUsersCmd() *cobra.Command {
ListUsersCmd.Flags().Set("page", "0")
ListUsersCmd.Flags().Set("per-page", "200")
ListUsersCmd.Flags().Set("all", "false")
ListUsersCmd.Flags().Set("team", "")
ListUsersCmd.Flags().Set("inactive", "false")
return ListUsersCmd
}
func listUsersCmdF(c client.Client, command *cobra.Command, args []string) error {
page, err := command.Flags().GetInt("page")
if err != nil {
@@ -815,6 +827,11 @@ func listUsersCmdF(c client.Client, command *cobra.Command, args []string) error
if err != nil {
return err
}
// if inactive, DeletedAt != 0
inactive, err := command.Flags().GetBool("inactive")
if err != nil {
return err
}
if showAll {
page = 0
@@ -829,21 +846,21 @@ func listUsersCmdF(c client.Client, command *cobra.Command, args []string) error
}
}
params := url.Values{}
if inactive {
params.Add("inactive", "true")
}
if team != nil {
params.Add("in_team", team.Id)
}
tpl := `{{.Id}}: {{.Username}} ({{.Email}})`
for {
var users []*model.User
var err error
if team != nil {
users, _, err = c.GetUsersInTeam(context.TODO(), team.Id, page, perPage, "")
if err != nil {
return errors.Wrap(err, fmt.Sprintf("Failed to fetch users for team %s", teamName))
}
} else {
users, _, err = c.GetUsers(context.TODO(), page, perPage, "")
if err != nil {
return errors.Wrap(err, "Failed to fetch users")
}
users, _, err := c.GetUsersWithCustomQueryParameters(context.TODO(), page, perPage, params.Encode(), "")
if err != nil {
return errors.Wrap(err, "Failed to fetch users")
}
if len(users) == 0 {
break
}