diff --git a/system/cli/cli.go b/system/cli/cli.go index 1c5f1a9f0..b43f74426 100644 --- a/system/cli/cli.go +++ b/system/cli/cli.go @@ -9,6 +9,7 @@ import ( "github.com/crusttech/crust/internal/settings" "github.com/crusttech/crust/system/internal/repository" + "github.com/crusttech/crust/system/internal/service" ) func Init(ctx context.Context) { @@ -22,24 +23,7 @@ func Init(ctx context.Context) { ExternalAuth(ctx, rootCmd, settingsService) - // @todo move cmd setup lines below to similar structure as Settings() - - // User management commands. - var cmdUsers = &cobra.Command{ - Use: "users", - Short: "User management", - } - rootCmd.AddCommand(cmdUsers) - - // List users. - var cmdUsersList = &cobra.Command{ - Use: "list", - Short: "List users", - Run: func(cmd *cobra.Command, args []string) { - UsersList() - }, - } - cmdUsers.AddCommand(cmdUsersList) + users(ctx, rootCmd, service.DefaultUser) roles(ctx, rootCmd, db) diff --git a/system/cli/users.go b/system/cli/users.go index 7f3ee6eb9..4fe52a6ae 100644 --- a/system/cli/users.go +++ b/system/cli/users.go @@ -5,38 +5,53 @@ import ( "fmt" "os" - "github.com/crusttech/crust/system/service" + "github.com/spf13/cobra" + + "github.com/crusttech/crust/system/internal/service" "github.com/crusttech/crust/system/types" ) -func UsersList() { - uf := &types.UserFilter{ - OrderBy: "updated_at", +func users(ctx context.Context, rootCmd *cobra.Command, userService service.UserService) { + // User management commands. + var cmdUsers = &cobra.Command{ + Use: "users", + Short: "User management", } + rootCmd.AddCommand(cmdUsers) - users, err := service.DefaultUser.With(context.Background()).Find(uf) - if err != nil { - fmt.Printf("Error: %v\n", err) - os.Exit(1) + // List users. + var cmdUsersList = &cobra.Command{ + Use: "list", + Short: "List users", + Run: func(cmd *cobra.Command, args []string) { + uf := &types.UserFilter{ + OrderBy: "updated_at", + } + + users, err := userService.With(ctx).Find(uf) + if err != nil { + fmt.Printf("Error: %v\n", err) + os.Exit(1) + } + + fmt.Println(" Created Updated Email") + for _, u := range users { + upd := "---- -- --" + + if u.UpdatedAt != nil { + upd = u.UpdatedAt.Format("2006-01-02") + } + + fmt.Printf( + "%20d %s %s %-100s %s\n", + u.ID, + u.CreatedAt.Format("2006-01-02"), + upd, + u.Email, + u.Name) + } + }, } + cmdUsers.AddCommand(cmdUsersList) - fmt.Println("ID Updated Deleted [email / name / username]") - for _, u := range users { - upd, del := "---- -- --", "---- -- --" - - if u.UpdatedAt != nil { - upd = u.UpdatedAt.Format("2006-01-02") - } - - if u.DeletedAt != nil { - upd = u.DeletedAt.Format("2006-01-02") - } - - fmt.Printf( - "%20d %s %s %s\n", - u.ID, - upd, - del, - u.Email+" / "+u.Name+" / "+u.Username) - } }