// createIdentityAndMapping creates an identity with a valid user reference for the given identity info func (p *provisioningIdentityMapper) createIdentityAndMapping(ctx kapi.Context, info authapi.UserIdentityInfo) (kuser.Info, error) { // Build the part of the identity we know about identity := &userapi.Identity{ ObjectMeta: kapi.ObjectMeta{ Name: info.GetIdentityName(), }, ProviderName: info.GetProviderName(), ProviderUserName: info.GetProviderUserName(), Extra: info.GetExtra(), } // Get or create a persisted user pointing to the identity persistedUser, err := p.provisioningStrategy.UserForNewIdentity(ctx, getPreferredUserName(identity), identity) if err != nil { return nil, err } // Create the identity pointing to the persistedUser identity.User = kapi.ObjectReference{ Name: persistedUser.Name, UID: persistedUser.UID, } if _, err := p.identity.CreateIdentity(ctx, identity); err != nil { return nil, err } return &kuser.DefaultInfo{ Name: persistedUser.Name, UID: string(persistedUser.UID), Groups: persistedUser.Groups, }, nil }
func (m *TestUserIdentityMapper) UserFor(identityInfo api.UserIdentityInfo) (user.Info, error) { m.Identity = identityInfo username := identityInfo.GetProviderUserName() if preferredUsername := identityInfo.GetExtra()[api.IdentityPreferredUsernameKey]; len(preferredUsername) > 0 { username = preferredUsername } return &user.DefaultInfo{Name: username}, nil }
func (m *testUserIdentityMapper) UserFor(identityInfo api.UserIdentityInfo) (user.Info, error) { return &user.DefaultInfo{Name: identityInfo.GetProviderUserName()}, nil }