@@ -143,7 +143,7 @@ func (m *manager) getUser(ctx context.Context, url string) (map[string]interface
143
143
144
144
t , _ := userData ["type" ].(string )
145
145
userType := getUserType (t , userData ["upn" ].(string ))
146
- if userType != userpb .UserType_USER_TYPE_APPLICATION && userType != userpb . UserType_USER_TYPE_FEDERATED {
146
+ if userType != userpb .UserType_USER_TYPE_APPLICATION {
147
147
users = append (users , userData )
148
148
}
149
149
}
@@ -290,15 +290,15 @@ func (m *manager) GetUserByClaim(ctx context.Context, claim, value string, skipF
290
290
}
291
291
292
292
var userData map [string ]interface {}
293
- if strings .HasPrefix (value , "guest:" ) {
293
+ if claim == "upn" && strings .HasPrefix (value , "guest:" ) {
294
294
// Lightweight accounts need to be fetched by email, regardless of the demanded claim
295
- if userData , err = m .getLightweightUser (ctx , strings .TrimPrefix (value , "guest:" )); err != nil {
296
- return nil , err
297
- }
295
+ userData , err = m .getLightweightUser (ctx , strings .TrimPrefix (value , "guest:" ))
298
296
} else {
299
- if userData , err = m .getUserByParam (ctx , claim , value ); err != nil {
300
- return nil , errors .Wrap (err , "rest: failed getUserByParam, claim=" + claim + ", value=" + value )
301
- }
297
+ userData , err = m .getUserByParam (ctx , claim , value )
298
+ }
299
+
300
+ if err != nil {
301
+ return nil , err
302
302
}
303
303
u , err := m .parseAndCacheUser (ctx , userData )
304
304
if err != nil {
@@ -329,15 +329,18 @@ func (m *manager) findUsersByFilter(ctx context.Context, url string, users map[s
329
329
continue
330
330
}
331
331
332
- upn , _ := usrInfo ["upn" ].(string )
332
+ upn , ok := usrInfo ["upn" ].(string )
333
+ if ! ok {
334
+ continue
335
+ }
333
336
mail , _ := usrInfo ["primaryAccountEmail" ].(string )
334
337
name , _ := usrInfo ["displayName" ].(string )
335
338
uidNumber , _ := usrInfo ["uid" ].(float64 )
336
339
gidNumber , _ := usrInfo ["gid" ].(float64 )
337
340
t , _ := usrInfo ["type" ].(string )
338
341
userType := getUserType (t , upn )
339
342
340
- if userType == userpb .UserType_USER_TYPE_APPLICATION || userType == userpb . UserType_USER_TYPE_FEDERATED {
343
+ if userType == userpb .UserType_USER_TYPE_APPLICATION {
341
344
continue
342
345
}
343
346
@@ -372,7 +375,7 @@ func (m *manager) FindUsers(ctx context.Context, query string, skipFetchingGroup
372
375
373
376
// Look at namespaces filters. If the query starts with:
374
377
// "a" => look into primary/secondary/service accounts
375
- // "l" => look into lightweight accounts
378
+ // "l" => look into lightweight/federated accounts
376
379
// none => look into primary
377
380
378
381
parts := strings .SplitN (query , ":" , 2 )
@@ -413,7 +416,7 @@ func (m *manager) FindUsers(ctx context.Context, query string, skipFetchingGroup
413
416
case "a" :
414
417
accountsFilters = []userpb.UserType {userpb .UserType_USER_TYPE_PRIMARY , userpb .UserType_USER_TYPE_SECONDARY , userpb .UserType_USER_TYPE_SERVICE }
415
418
case "l" :
416
- accountsFilters = []userpb.UserType {userpb .UserType_USER_TYPE_LIGHTWEIGHT }
419
+ accountsFilters = []userpb.UserType {userpb .UserType_USER_TYPE_LIGHTWEIGHT , userpb . UserType_USER_TYPE_FEDERATED }
417
420
}
418
421
419
422
for _ , u := range users {
0 commit comments