feat: add email filter to user list command (#973)

This commit is contained in:
kolaente
2025-06-17 14:38:04 +02:00
committed by GitHub
parent 6e6c93f413
commit 34a5196a05

View File

@@ -51,6 +51,9 @@ var (
)
func init() {
// List flags
userListCmd.Flags().StringVarP(&userFlagEmail, "email", "e", "", "Filter users by an email address (exact match).")
// User create flags
userCreateCmd.Flags().StringVarP(&userFlagUsername, "username", "u", "", "The username of the new user.")
_ = userCreateCmd.MarkFlagRequired("username")
@@ -136,14 +139,23 @@ var userListCmd = &cobra.Command{
s := db.NewSession()
defer s.Close()
users, err := user.ListAllUsers(s)
if err != nil {
_ = s.Rollback()
log.Fatalf("Error getting users: %s", err)
}
var users []*user.User
if err := s.Commit(); err != nil {
log.Fatalf("Error getting users: %s", err)
if userFlagEmail != "" {
u, err := user.GetUserWithEmail(s, &user.User{Email: userFlagEmail})
if err != nil && !user.IsErrUserDoesNotExist(err) {
log.Fatalf("Error getting user: %s", err)
}
if u != nil {
users = []*user.User{u}
}
} else {
var err error
users, err = user.ListAllUsers(s)
if err != nil {
log.Fatalf("Error getting users: %s", err)
}
}
table := tablewriter.NewTable(