Fix & improve user cli cmd listing & filtering
Fix broken query and add ability to limit and filter list of users
This commit is contained in:
parent
e3c0fb6d25
commit
eaaef92d04
@ -3,6 +3,9 @@ package commands
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"github.com/cortezaproject/corteza-server/pkg/auth"
|
||||
"github.com/cortezaproject/corteza-server/pkg/rh"
|
||||
"strconv"
|
||||
"syscall"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
@ -32,22 +35,38 @@ func Users(ctx context.Context, c *cli.Config) *cobra.Command {
|
||||
Short: "List users",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
c.InitServices(ctx, c)
|
||||
ctx = auth.SetSuperUserContext(ctx)
|
||||
|
||||
var (
|
||||
db = factory.Database.MustGet("system")
|
||||
|
||||
queryFlag = cmd.Flags().Lookup("query").Value.String()
|
||||
limitFlag = cmd.Flags().Lookup("limit").Value.String()
|
||||
|
||||
limit int
|
||||
err error
|
||||
)
|
||||
|
||||
limit, err = strconv.Atoi(limitFlag)
|
||||
cli.HandleError(err)
|
||||
|
||||
userRepo := repository.User(ctx, db)
|
||||
uf := types.UserFilter{
|
||||
Sort: "updatedAt",
|
||||
Sort: "updated_at",
|
||||
Query: queryFlag,
|
||||
PageFilter: rh.PageFilter{
|
||||
PerPage: uint(limit),
|
||||
},
|
||||
}
|
||||
|
||||
users, _, err := userRepo.Find(uf)
|
||||
if err != nil {
|
||||
cli.HandleError(err)
|
||||
}
|
||||
cli.HandleError(err)
|
||||
|
||||
fmt.Fprintf(
|
||||
cmd.OutOrStdout(),
|
||||
" Created Updated EmailAddress",
|
||||
)
|
||||
|
||||
fmt.Println(" Created Updated EmailAddress")
|
||||
for _, u := range users {
|
||||
upd := "---- -- --"
|
||||
|
||||
@ -55,23 +74,29 @@ func Users(ctx context.Context, c *cli.Config) *cobra.Command {
|
||||
upd = u.UpdatedAt.Format("2006-01-02")
|
||||
}
|
||||
|
||||
fmt.Printf(
|
||||
fmt.Fprintf(
|
||||
cmd.OutOrStdout(),
|
||||
"%20d %s %s %-100s %s\n",
|
||||
u.ID,
|
||||
u.CreatedAt.Format("2006-01-02"),
|
||||
upd,
|
||||
u.Email,
|
||||
u.Name)
|
||||
u.Name,
|
||||
)
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
listCmd.Flags().IntP("limit", "l", 20, "How many entry to display")
|
||||
listCmd.Flags().StringP("query", "q", "", "Query and filter by handle, email, name")
|
||||
|
||||
addCmd := &cobra.Command{
|
||||
Use: "add [email]",
|
||||
Short: "Add new user",
|
||||
Args: cobra.MinimumNArgs(1),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
c.InitServices(ctx, c)
|
||||
ctx = auth.SetSuperUserContext(ctx)
|
||||
|
||||
var (
|
||||
db = factory.Database.MustGet("system")
|
||||
@ -127,6 +152,7 @@ func Users(ctx context.Context, c *cli.Config) *cobra.Command {
|
||||
Args: cobra.MinimumNArgs(1),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
c.InitServices(ctx, c)
|
||||
ctx = auth.SetSuperUserContext(ctx)
|
||||
|
||||
var (
|
||||
db = factory.Database.MustGet("system")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user