|
|
@ -358,7 +358,7 @@ func DefaultIdentityFunc(ctx context.Context, p Interface, email string, usernam
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
usernames = append(usernames, email)
|
|
|
|
usernames = append(usernames, email)
|
|
|
|
// Some remove duplicate function should be added
|
|
|
|
usernames = SanitizeStringSlices(usernames)
|
|
|
|
return &Identity{
|
|
|
|
return &Identity{
|
|
|
|
Usernames: usernames,
|
|
|
|
Usernames: usernames,
|
|
|
|
}, nil
|
|
|
|
}, nil
|
|
|
@ -367,6 +367,21 @@ func DefaultIdentityFunc(ctx context.Context, p Interface, email string, usernam
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func SanitizeStringSlices(original []string) []string {
|
|
|
|
|
|
|
|
output := []string{}
|
|
|
|
|
|
|
|
seen := make(map[string]bool)
|
|
|
|
|
|
|
|
for _, entry := range original {
|
|
|
|
|
|
|
|
if entry == "" {
|
|
|
|
|
|
|
|
continue
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if _, value := seen[entry]; !value {
|
|
|
|
|
|
|
|
seen[entry] = true
|
|
|
|
|
|
|
|
output = append(output, entry)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return output
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// MockProvisioner for testing
|
|
|
|
// MockProvisioner for testing
|
|
|
|
type MockProvisioner struct {
|
|
|
|
type MockProvisioner struct {
|
|
|
|
Mret1, Mret2, Mret3 interface{}
|
|
|
|
Mret1, Mret2, Mret3 interface{}
|
|
|
|