44 "fmt"
55 "os"
66
7- "github.com/onelogin/onelogin-go-sdk/v4/pkg/onelogin/models"
87 "github.com/pepabo/onecli/onelogin"
98 "github.com/pepabo/onecli/utils"
109 "github.com/spf13/cobra"
@@ -17,8 +16,12 @@ var userCmd = &cobra.Command{
1716}
1817
1918var (
20- queryParams onelogin.UserQuery
21- output string
19+ userQueryEmail string
20+ userQueryUsername string
21+ userQueryFirstname string
22+ userQueryLastname string
23+ userQueryUserID string
24+ output string
2225)
2326
2427// initClient initializes the OneLogin client
@@ -42,7 +45,8 @@ var listCmd = &cobra.Command{
4245 return err
4346 }
4447
45- users , err := client .GetUsers (queryParams )
48+ query := getUserQuery ()
49+ users , err := client .GetUsers (query )
4650 if err != nil {
4751 return fmt .Errorf ("error getting users: %v" , err )
4852 }
@@ -60,11 +64,6 @@ var modifyCmd = &cobra.Command{
6064 Long : `Modify user information in your OneLogin organization` ,
6165}
6266
63- // isQueryParamsEmpty checks if all query parameters are empty
64- func isQueryParamsEmpty (params onelogin.UserQuery ) bool {
65- return params .Email == "" && params .Username == "" && params .Firstname == "" && params .Lastname == "" && params .ID == ""
66- }
67-
6867var modifyEmailCmd = & cobra.Command {
6968 Use : "email <new-email>" ,
7069 Aliases : []string {"m" , "mod" },
@@ -73,7 +72,8 @@ var modifyEmailCmd = &cobra.Command{
7372 Args : cobra .ExactArgs (1 ),
7473 SilenceUsage : true ,
7574 RunE : func (cmd * cobra.Command , args []string ) error {
76- if isQueryParamsEmpty (queryParams ) {
75+ query := getUserQuery ()
76+ if isQueryParamsEmpty (query ) {
7777 return fmt .Errorf ("at least one query parameter (email, username, firstname, lastname, or user-id) must be specified" )
7878 }
7979
@@ -84,7 +84,7 @@ var modifyEmailCmd = &cobra.Command{
8484 return err
8585 }
8686
87- users , err := client .GetUsers (queryParams )
87+ users , err := client .GetUsers (query )
8888 if err != nil {
8989 return fmt .Errorf ("error getting users: %v" , err )
9090 }
@@ -100,7 +100,7 @@ var modifyEmailCmd = &cobra.Command{
100100 user := users [0 ]
101101 user .Email = newEmail
102102
103- _ , err = client .UpdateUser (int (user .ID ), user )
103+ err = client .UpdateUser (int (user .ID ), user )
104104 if err != nil {
105105 return fmt .Errorf ("error updating user: %v" , err )
106106 }
@@ -125,38 +125,53 @@ var addCmd = &cobra.Command{
125125 return fmt .Errorf ("error initializing OneLogin client: %v" , err )
126126 }
127127
128- newUser := models .User {
128+ newUser := onelogin .User {
129129 Firstname : firstName ,
130130 Lastname : lastName ,
131131 Email : email ,
132132 }
133133
134- createdUser , err : = client .CreateUser (newUser )
134+ err = client .CreateUser (newUser )
135135 if err != nil {
136136 return fmt .Errorf ("error creating user: %v" , err )
137137 }
138138
139- fmt .Printf ("Successfully added user: %s %s with email: %s\n " , createdUser .Firstname , createdUser .Lastname , createdUser .Email )
139+ fmt .Printf ("Successfully added user: %s %s with email: %s\n " , newUser .Firstname , newUser .Lastname , newUser .Email )
140140 return nil
141141 },
142142}
143143
144+ func getUserQuery () onelogin.UserQuery {
145+ return onelogin.UserQuery {
146+ Email : & userQueryEmail ,
147+ Username : & userQueryUsername ,
148+ Firstname : & userQueryFirstname ,
149+ Lastname : & userQueryLastname ,
150+ UserIDs : & userQueryUserID ,
151+ }
152+ }
153+
154+ // isQueryParamsEmpty checks if all query parameters are empty
155+ func isQueryParamsEmpty (params onelogin.UserQuery ) bool {
156+ return params .Email == nil && params .Username == nil && params .Firstname == nil && params .Lastname == nil && params .UserIDs == nil
157+ }
158+
144159func init () {
145160 userCmd .AddCommand (listCmd )
146161 userCmd .AddCommand (modifyCmd )
147162 modifyCmd .AddCommand (modifyEmailCmd )
148163 userCmd .AddCommand (addCmd )
149164
150165 listCmd .Flags ().StringVarP (& output , "output" , "o" , "yaml" , "Output format (yaml, json)" )
151- listCmd .Flags ().StringVar (& queryParams . Email , "email" , "" , "Filter users by email" )
152- listCmd .Flags ().StringVar (& queryParams . Username , "username" , "" , "Filter users by username" )
153- listCmd .Flags ().StringVar (& queryParams . Firstname , "firstname" , "" , "Filter users by first name" )
154- listCmd .Flags ().StringVar (& queryParams . Lastname , "lastname" , "" , "Filter users by last name" )
155- listCmd .Flags ().StringVar (& queryParams . ID , "user-id" , "" , "Filter users by user ID" )
156-
157- modifyEmailCmd .Flags ().StringVar (& queryParams . Email , "email" , "" , "Query by email" )
158- modifyEmailCmd .Flags ().StringVar (& queryParams . Username , "username" , "" , "Query by username" )
159- modifyEmailCmd .Flags ().StringVar (& queryParams . Firstname , "firstname" , "" , "Query by first name" )
160- modifyEmailCmd .Flags ().StringVar (& queryParams . Lastname , "lastname" , "" , "Query by last name" )
161- modifyEmailCmd .Flags ().StringVar (& queryParams . ID , "user-id" , "" , "Query by user ID" )
166+ listCmd .Flags ().StringVar (& userQueryEmail , "email" , "" , "Filter users by email" )
167+ listCmd .Flags ().StringVar (& userQueryUsername , "username" , "" , "Filter users by username" )
168+ listCmd .Flags ().StringVar (& userQueryFirstname , "firstname" , "" , "Filter users by first name" )
169+ listCmd .Flags ().StringVar (& userQueryLastname , "lastname" , "" , "Filter users by last name" )
170+ listCmd .Flags ().StringVar (& userQueryUserID , "user-id" , "" , "Filter users by user ID" )
171+
172+ modifyEmailCmd .Flags ().StringVar (& userQueryEmail , "email" , "" , "Query by email" )
173+ modifyEmailCmd .Flags ().StringVar (& userQueryUsername , "username" , "" , "Query by username" )
174+ modifyEmailCmd .Flags ().StringVar (& userQueryFirstname , "firstname" , "" , "Query by first name" )
175+ modifyEmailCmd .Flags ().StringVar (& userQueryLastname , "lastname" , "" , "Query by last name" )
176+ modifyEmailCmd .Flags ().StringVar (& userQueryUserID , "user-id" , "" , "Query by user ID" )
162177}
0 commit comments