Skip to content

Commit e5bee86

Browse files
author
Hrabur Stoyanov
committed
move FindUsersInGroup to users.ls
Closes: #2945
1 parent 8c7ba5e commit e5bee86

File tree

3 files changed

+45
-40
lines changed

3 files changed

+45
-40
lines changed

govc/USAGE.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4654,11 +4654,9 @@ List SSO groups.
46544654
Examples:
46554655
govc sso.group.ls
46564656
govc sso.group.ls group-name # list groups in group-name
4657-
govc sso.group.ls -users group-name # list users in group-name instead groups
4658-
govc sso.group.ls -s Admin # search for groups`
4657+
govc sso.group.ls -search Admin # search for groups`
46594658
Options:
4660-
-s string # search for groups or users
4661-
-users # list users in group-name instead groups
4659+
-search string # search for groups
46624660
```
46634661

46644662
## sso.group.rm
@@ -4780,9 +4778,11 @@ List SSO users.
47804778
47814779
Examples:
47824780
govc sso.user.ls -s
4783-
4781+
govc sso.user.ls -group group-name # list users in group-name
47844782
Options:
47854783
-s=false List solution users
4784+
-group List users in group-name
4785+
-search Search string to list users in group
47864786
```
47874787

47884788
## sso.user.rm

govc/sso/group/ls.go

Lines changed: 7 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ type ls struct {
3535
*flags.OutputFlag
3636

3737
search string
38-
users bool
3938
}
4039

4140
func init() {
@@ -49,8 +48,7 @@ func (cmd *ls) Register(ctx context.Context, f *flag.FlagSet) {
4948
cmd.OutputFlag, ctx = flags.NewOutputFlag(ctx)
5049
cmd.OutputFlag.Register(ctx, f)
5150

52-
f.StringVar(&cmd.search, "s", "", "Search")
53-
f.BoolVar(&cmd.users, "users", false, "List users in group")
51+
f.StringVar(&cmd.search, "search", "", "Search")
5452
}
5553

5654
func (cmd *ls) Usage() string {
@@ -63,8 +61,7 @@ func (cmd *ls) Description() string {
6361
Examples:
6462
govc sso.group.ls
6563
govc sso.group.ls group-name # list groups in group-name
66-
govc sso.group.ls -users group-name # list users in group-name instead groups
67-
govc sso.group.ls -s Admin # search for groups`
64+
govc sso.group.ls -search Admin # search for groups`
6865
}
6966

7067
func (cmd *ls) Process(ctx context.Context) error {
@@ -88,43 +85,19 @@ func (r groupResult) Write(w io.Writer) error {
8885
return tw.Flush()
8986
}
9087

91-
type userResult []types.AdminUser
92-
93-
func (r userResult) Dump() interface{} {
94-
return []types.AdminUser(r)
95-
}
96-
97-
func (r userResult) Write(w io.Writer) error {
98-
tw := tabwriter.NewWriter(w, 2, 0, 2, ' ', 0)
99-
for _, info := range r {
100-
fmt.Fprintf(tw, "%s\t%s\n", info.Id.Name, info.Description)
101-
}
102-
return tw.Flush()
103-
}
104-
10588
func (cmd *ls) Run(ctx context.Context, f *flag.FlagSet) error {
10689
return sso.WithClient(ctx, cmd.ClientFlag, func(c *ssoadmin.Client) error {
107-
if f.NArg() == 0 && !cmd.users {
90+
if f.NArg() == 0 {
10891
info, err := c.FindGroups(ctx, cmd.search)
10992
if err != nil {
11093
return err
11194
}
11295
return cmd.WriteResult(groupResult(info))
11396
}
114-
if f.NArg() != 0 && cmd.users {
115-
info, err := c.FindUsersInGroup(ctx, f.Arg(0), cmd.search)
116-
if err != nil {
117-
return err
118-
}
119-
return cmd.WriteResult(userResult(info))
120-
}
121-
if f.NArg() != 0 {
122-
info, err := c.FindGroupsInGroup(ctx, f.Arg(0), cmd.search)
123-
if err != nil {
124-
return err
125-
}
126-
return cmd.WriteResult(groupResult(info))
97+
info, err := c.FindGroupsInGroup(ctx, f.Arg(0), cmd.search)
98+
if err != nil {
99+
return err
127100
}
128-
return flag.ErrHelp
101+
return cmd.WriteResult(groupResult(info))
129102
})
130103
}

govc/sso/user/ls.go

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ type ls struct {
3535
*flags.OutputFlag
3636

3737
solution bool
38+
group bool
39+
search string
3840
}
3941

4042
func init() {
@@ -49,13 +51,16 @@ func (cmd *ls) Register(ctx context.Context, f *flag.FlagSet) {
4951
cmd.OutputFlag.Register(ctx, f)
5052

5153
f.BoolVar(&cmd.solution, "s", false, "List solution users")
54+
f.BoolVar(&cmd.group, "group", false, "List users in group")
55+
f.StringVar(&cmd.search, "search", "", "Search users in group")
5256
}
5357

5458
func (cmd *ls) Description() string {
5559
return `List SSO users.
5660
5761
Examples:
58-
govc sso.user.ls -s`
62+
govc sso.user.ls -s
63+
govc sso.user.ls -group group-name`
5964
}
6065

6166
func (cmd *ls) Process(ctx context.Context) error {
@@ -65,6 +70,20 @@ func (cmd *ls) Process(ctx context.Context) error {
6570
return cmd.OutputFlag.Process(ctx)
6671
}
6772

73+
type userResult []types.AdminUser
74+
75+
func (r userResult) Dump() interface{} {
76+
return []types.AdminUser(r)
77+
}
78+
79+
func (r userResult) Write(w io.Writer) error {
80+
tw := tabwriter.NewWriter(w, 2, 0, 2, ' ', 0)
81+
for _, info := range r {
82+
fmt.Fprintf(tw, "%s\t%s\n", info.Id.Name, info.Description)
83+
}
84+
return tw.Flush()
85+
}
86+
6887
type solutionResult []types.AdminSolutionUser
6988

7089
func (r solutionResult) Dump() interface{} {
@@ -98,14 +117,27 @@ func (cmd *ls) Run(ctx context.Context, f *flag.FlagSet) error {
98117

99118
return sso.WithClient(ctx, cmd.ClientFlag, func(c *ssoadmin.Client) error {
100119
if cmd.solution {
120+
if f.NArg() != 0 {
121+
return flag.ErrHelp
122+
}
101123
info, err := c.FindSolutionUsers(ctx, arg)
102124
if err != nil {
103125
return err
104126
}
105127

106128
return cmd.WriteResult(solutionResult(info))
107129
}
130+
if cmd.group {
131+
if f.NArg() == 0 {
132+
return flag.ErrHelp
133+
}
134+
info, err := c.FindUsersInGroup(ctx, f.Arg(0), cmd.search)
135+
if err != nil {
136+
return err
137+
}
108138

139+
return cmd.WriteResult(userResult(info))
140+
}
109141
info, err := c.FindPersonUsers(ctx, arg)
110142
if err != nil {
111143
return err

0 commit comments

Comments
 (0)