@@ -79,15 +79,15 @@ func (s *Provider) GetGroups(ctx context.Context) (*model.GroupsResult, error) {
7979 return nil , fmt .Errorf ("scim: error listing groups: %w" , err )
8080 }
8181
82- groups := make ([]* model.Group , 0 )
83- for _ , group := range groupsResponse .Resources {
82+ groups := make ([]* model.Group , len ( groupsResponse . Resources ) )
83+ for i , group := range groupsResponse .Resources {
8484 e := model .GroupBuilder ().
8585 WithSCIMID (group .ID ).
8686 WithName (group .DisplayName ).
8787 WithIPID (group .ExternalID ).
8888 Build ()
8989
90- groups = append ( groups , e )
90+ groups [ i ] = e
9191 }
9292
9393 groupsResult := model .GroupsResultBuilder ().WithResources (groups ).Build ()
@@ -99,17 +99,16 @@ func (s *Provider) GetGroups(ctx context.Context) (*model.GroupsResult, error) {
9999
100100// CreateGroups creates groups in SCIM Provider
101101func (s * Provider ) CreateGroups (ctx context.Context , gr * model.GroupsResult ) (* model.GroupsResult , error ) {
102- groups := make ([]* model.Group , 0 )
102+ groups := make ([]* model.Group , len ( gr . Resources ) )
103103
104- for _ , group := range gr .Resources {
104+ for i , group := range gr .Resources {
105105 groupRequest := & aws.CreateGroupRequest {
106106 DisplayName : group .Name ,
107107 ExternalID : group .IPID ,
108108 }
109109
110110 slog .Warn ("creating group" , "group" , group .Name )
111111
112- // TODO: r, err := s.scim.CreateGroup(ctx, groupRequest)
113112 r , err := s .scim .CreateOrGetGroup (ctx , groupRequest )
114113 if err != nil {
115114 return nil , fmt .Errorf ("scim: error creating group: %w" , err )
@@ -122,7 +121,7 @@ func (s *Provider) CreateGroups(ctx context.Context, gr *model.GroupsResult) (*m
122121 WithEmail (group .Email ).
123122 Build ()
124123
125- groups = append ( groups , e )
124+ groups [ i ] = e
126125 }
127126
128127 groupsResult := model .GroupsResultBuilder ().WithResources (groups ).Build ()
@@ -134,9 +133,9 @@ func (s *Provider) CreateGroups(ctx context.Context, gr *model.GroupsResult) (*m
134133
135134// UpdateGroups updates groups in SCIM Provider
136135func (s * Provider ) UpdateGroups (ctx context.Context , gr * model.GroupsResult ) (* model.GroupsResult , error ) {
137- groups := make ([]* model.Group , 0 )
136+ groups := make ([]* model.Group , len ( gr . Resources ) )
138137
139- for _ , group := range gr .Resources {
138+ for i , group := range gr .Resources {
140139 groupRequest := & aws.PatchGroupRequest {
141140 Group : aws.Group {
142141 ID : group .SCIMID ,
@@ -170,7 +169,7 @@ func (s *Provider) UpdateGroups(ctx context.Context, gr *model.GroupsResult) (*m
170169 WithEmail (group .Email ).
171170 Build ()
172171
173- groups = append ( groups , e )
172+ groups [ i ] = e
174173 }
175174
176175 groupsResult := model .GroupsResultBuilder ().WithResources (groups ).Build ()
@@ -199,29 +198,27 @@ func (s *Provider) GetUsers(ctx context.Context) (*model.UsersResult, error) {
199198 return nil , fmt .Errorf ("scim: error listing users: %w" , err )
200199 }
201200
202- users := make ([]* model.User , 0 )
203- for _ , user := range usersResponse .Resources {
201+ users := make ([]* model.User , len ( usersResponse . Resources ) )
202+ for i , user := range usersResponse .Resources {
204203 e := buildUser (user )
205- users = append ( users , e )
204+ users [ i ] = e
206205 }
207206
208207 usersResult := model .UsersResultBuilder ().WithResources (users ).Build ()
209-
210208 slog .Debug ("scim: GetUsers()" , "users" , len (users ))
211209
212210 return usersResult , nil
213211}
214212
215213// CreateUsers creates users in SCIM Provider
216214func (s * Provider ) CreateUsers (ctx context.Context , ur * model.UsersResult ) (* model.UsersResult , error ) {
217- users := make ([]* model.User , 0 )
215+ users := make ([]* model.User , len ( ur . Resources ) )
218216
219- for _ , user := range ur .Resources {
217+ for i , user := range ur .Resources {
220218 userRequest := buildCreateUserRequest (user )
221219
222220 slog .Warn ("creating user" , "user" , user .DisplayName , "email" , user .GetPrimaryEmailAddress ())
223221
224- // TODO: r, err := s.scim.CreateUser(ctx, userRequest)
225222 cogu , err := s .scim .CreateOrGetUser (ctx , userRequest )
226223 if err != nil {
227224 return nil , fmt .Errorf ("scim: error creating user: %w" , err )
@@ -230,21 +227,20 @@ func (s *Provider) CreateUsers(ctx context.Context, ur *model.UsersResult) (*mod
230227 user .SCIMID = cogu .ID
231228 user .SetHashCode ()
232229
233- users = append ( users , user )
230+ users [ i ] = user
234231 }
235232
236233 usersResult := model .UsersResultBuilder ().WithResources (users ).Build ()
237-
238234 slog .Debug ("scim: CreateUsers()" , "users" , len (users ))
239235
240236 return usersResult , nil
241237}
242238
243239// UpdateUsers updates users in SCIM Provider given a list of users
244240func (s * Provider ) UpdateUsers (ctx context.Context , ur * model.UsersResult ) (* model.UsersResult , error ) {
245- users := make ([]* model.User , 0 )
241+ users := make ([]* model.User , len ( ur . Resources ) )
246242
247- for _ , user := range ur .Resources {
243+ for i , user := range ur .Resources {
248244 if user .SCIMID == "" {
249245 return nil , fmt .Errorf ("scim: error updating user, user ID is empty: %s" , user .SCIMID )
250246 }
@@ -262,11 +258,10 @@ func (s *Provider) UpdateUsers(ctx context.Context, ur *model.UsersResult) (*mod
262258 user .SCIMID = pur .ID
263259 user .SetHashCode ()
264260
265- users = append ( users , user )
261+ users [ i ] = user
266262 }
267263
268264 usersResult := model .UsersResultBuilder ().WithResources (users ).Build ()
269-
270265 slog .Debug ("scim: UpdateUsers()" , "users" , len (users ))
271266
272267 return usersResult , nil
@@ -317,9 +312,9 @@ func (s *Provider) CreateGroupsMembers(ctx context.Context, gmr *model.GroupsMem
317312 WithStatus (member .Status ).
318313 Build ()
319314
315+ slog .Warn ("adding member to group" , "group" , groupMembers .Group .Name , "email" , member .Email )
320316 members = append (members , e )
321317
322- slog .Warn ("adding member to group" , "group" , groupMembers .Group .Name , "email" , member .Email )
323318 }
324319
325320 e := model .GroupMembersBuilder ().
@@ -427,9 +422,8 @@ func (s *Provider) GetGroupsMembers(ctx context.Context, gr *model.GroupsResult)
427422 }
428423 }
429424
430- groupsMembersResult := model .GroupsMembersResultBuilder ().WithResources (groupMembers ).Build ()
431-
432425 slog .Debug ("scim: GetGroupsMembers()" , "groups_members" , len (groupMembers ))
426+ groupsMembersResult := model .GroupsMembersResultBuilder ().WithResources (groupMembers ).Build ()
433427
434428 return groupsMembersResult , nil
435429}
@@ -462,6 +456,7 @@ func (s *Provider) GetGroupsMembersBruteForce(ctx context.Context, gr *model.Gro
462456 if user .Active {
463457 m .Status = "ACTIVE"
464458 }
459+
465460 members = append (members , m )
466461 }
467462 }
@@ -473,9 +468,8 @@ func (s *Provider) GetGroupsMembersBruteForce(ctx context.Context, gr *model.Gro
473468 groupMembers = append (groupMembers , e )
474469 }
475470
476- groupsMembersResult := model .GroupsMembersResultBuilder ().WithResources (groupMembers ).Build ()
477-
478471 slog .Debug ("scim: GetGroupsMembersBruteForce()" , "groups_members" , len (groupMembers ))
472+ groupsMembersResult := model .GroupsMembersResultBuilder ().WithResources (groupMembers ).Build ()
479473
480474 return groupsMembersResult , nil
481475}
0 commit comments