|
1 | 1 | package access.manage; |
2 | 2 |
|
3 | 3 | import access.exception.NotFoundException; |
4 | | -import access.model.*; |
| 4 | +import access.model.Connection; |
| 5 | +import access.model.EntityType; |
| 6 | +import access.model.Environment; |
| 7 | +import access.model.Organization; |
| 8 | +import access.model.User; |
5 | 9 | import com.fasterxml.jackson.core.type.TypeReference; |
6 | 10 | import com.fasterxml.jackson.databind.ObjectMapper; |
7 | 11 | import lombok.SneakyThrows; |
|
12 | 16 | import org.springframework.core.io.Resource; |
13 | 17 | import org.springframework.util.StringUtils; |
14 | 18 |
|
15 | | -import java.util.*; |
| 19 | +import java.util.ArrayList; |
| 20 | +import java.util.Arrays; |
| 21 | +import java.util.HashMap; |
| 22 | +import java.util.List; |
| 23 | +import java.util.Map; |
| 24 | +import java.util.UUID; |
16 | 25 | import java.util.stream.Collectors; |
17 | 26 | import java.util.stream.IntStream; |
18 | 27 | import java.util.stream.Stream; |
@@ -272,7 +281,7 @@ public List<Map<String, Object>> policiesByIdentityProvider(String identityProvi |
272 | 281 | List<Map<String, String>> identityProviderIds = (List<Map<String, String>>) |
273 | 282 | data.getOrDefault("identityProviderIds", List.of()); |
274 | 283 | return identityProviderIds.stream() |
275 | | - .anyMatch(m -> m.get("name").equals(identityProviderEntityId)); |
| 284 | + .anyMatch(m -> m.get("name").equals(identityProviderEntityId)); |
276 | 285 | }) |
277 | 286 | .toList(); |
278 | 287 | } |
@@ -315,4 +324,24 @@ public void deletePolicy(Map<String, Object> policy) { |
315 | 324 | public void connectWithoutInteraction(Map<String, Object> identityProvider, Map<String, Object> serviceProvider, User currentUser) { |
316 | 325 | //nope |
317 | 326 | } |
| 327 | + |
| 328 | + @Override |
| 329 | + public Map<String, List<Map<String, Object>>> autoCompleteEntities(EntityType type, String query) { |
| 330 | + String lowerCaseQuery = query.toLowerCase(); |
| 331 | + return Map.of("suggestions", this.allProviders.get(type).stream() |
| 332 | + .filter(entity -> { |
| 333 | + Map<String, Object> data = getData(entity); |
| 334 | + String entityid = (String) data.get("entityid"); |
| 335 | + if (entityid.toLowerCase().contains(lowerCaseQuery)) { |
| 336 | + return true; |
| 337 | + } |
| 338 | + Map<String, Object> metaDataFields = getMetaDataFields(data); |
| 339 | + return Stream.of("name:en", "name:nl", "OrganizationName:en", "OrganizationName:nl") |
| 340 | + .anyMatch(attr -> { |
| 341 | + String val = (String) metaDataFields.get("attr"); |
| 342 | + return StringUtils.hasText(val) && val.toLowerCase().contains(query); |
| 343 | + }); |
| 344 | + }) |
| 345 | + .toList()); |
| 346 | + } |
318 | 347 | } |
0 commit comments