private List<Page> getPages(Scope scope, boolean isAdmin, @Nullable Qualifier qualifier) { return getAllPages().stream() .filter(p -> p.getScope().equals(scope)) .filter(p -> p.isAdmin() == isAdmin) .filter(p -> !COMPONENT.equals(p.getScope()) || p.getComponentQualifiers().contains(qualifier)) .collect(toList()); }
private void writeExtensions(JsonWriter json, ComponentDto component, List<Page> pages) { json.name("extensions").beginArray(); Predicate<Page> isAuthorized = page -> { String requiredPermission = page.isAdmin() ? UserRole.ADMIN : UserRole.USER; return userSession.hasComponentPermission(requiredPermission, component); }; pages.stream() .filter(isAuthorized) .forEach(page -> writePage(json, page)); json.endArray(); }
@Test public void default_values() { Page result = underTest.build(); assertThat(result.getComponentQualifiers()).isEmpty(); assertThat(result.getScope()).isEqualTo(GLOBAL); assertThat(result.isAdmin()).isFalse(); }
@Test public void full_test() { Page result = underTest .setComponentQualifiers(PROJECT, MODULE) .setScope(COMPONENT) .setAdmin(true) .build(); assertThat(result.getKey()).isEqualTo("governance/project_dump"); assertThat(result.getPluginKey()).isEqualTo("governance"); assertThat(result.getName()).isEqualTo("Project Dump"); assertThat(result.getComponentQualifiers()).containsOnly(PROJECT, MODULE); assertThat(result.getScope()).isEqualTo(COMPONENT); assertThat(result.isAdmin()).isTrue(); }
private List<Page> getPages(Scope scope, boolean isAdmin, @Nullable Qualifier qualifier) { return getAllPages().stream() .filter(p -> p.getScope().equals(scope)) .filter(p -> p.isAdmin() == isAdmin) .filter(p -> !COMPONENT.equals(p.getScope()) || p.getComponentQualifiers().contains(qualifier)) .collect(toList()); }
private void writeExtensions(JsonWriter json, ComponentDto component, List<Page> pages) { json.name("extensions").beginArray(); Predicate<Page> isAuthorized = page -> { String requiredPermission = page.isAdmin() ? UserRole.ADMIN : UserRole.USER; return userSession.hasComponentPermission(requiredPermission, component); }; pages.stream() .filter(isAuthorized) .forEach(page -> writePage(json, page)); json.endArray(); }