public boolean validateTree(ValidationContext validationContextWithSecurityConfig) { this.stream().forEach(admin -> { admin.validate(validationContextWithSecurityConfig); configErrors.addAll(admin.errors()); }); configErrors.remove("name"); return !hasErrors(); } }
public static void toJSONWithoutLinks(OutputWriter jsonWriter, AdminsConfig admin) { jsonWriter.addChildList("roles", rolesAsString(admin.getRoles())); jsonWriter.addChildList("users", userAsString(admin.getUsers())); if (admin.hasErrors()) { jsonWriter.addChild("errors", errorWriter -> new ErrorGetter(Collections.singletonMap("SystemAdmin", "system_admin")) .toJSON(errorWriter, admin)); } }
@Test public void shouldValidateIfRoleExists() { CaseInsensitiveString roleName = new CaseInsensitiveString("admin_role"); AdminsConfig adminsConfig = new AdminsConfig(new AdminRole(roleName)); ValidationContext validationContext = mock(ValidationContext.class); SecurityConfig securityConfig = mock(SecurityConfig.class); when(validationContext.shouldNotCheckRole()).thenReturn(false); when(validationContext.getServerSecurityConfig()).thenReturn(securityConfig); when(securityConfig.isRoleExist(roleName)).thenReturn(false); assertFalse(adminsConfig.validateTree(validationContext)); assertTrue(adminsConfig.hasErrors()); assertThat(adminsConfig.errors().on("roles"), is("Role \"admin_role\" does not exist.")); } }
public static void toJSON(OutputWriter jsonWriter, AdminsConfig admin) { jsonWriter.addLinks( outputLinkWriter -> outputLinkWriter.addAbsoluteLink("doc", Routes.SystemAdmins.DOC) .addLink("self", Routes.SystemAdmins.BASE)); jsonWriter.addChildList("roles", rolesAsString(admin.getRoles())); jsonWriter.addChildList("users", userAsString(admin.getUsers())); if (admin.hasErrors()) { jsonWriter.addChild("errors", errorWriter -> new ErrorGetter(Collections.singletonMap("SystemAdmin", "system_admin")) .toJSON(errorWriter, admin)); } }
@Test public void shouldValidatePresenceOfUserName() { AdminsConfig adminsConfig = new AdminsConfig(new AdminUser("")); ValidationContext validationContext = mock(ValidationContext.class); assertFalse(adminsConfig.validateTree(validationContext)); assertTrue(adminsConfig.hasErrors()); assertThat(adminsConfig.errors().on("users"), is("User cannot be blank.")); }
@Test public void shouldValidateIfUserNameIsBlank() { AdminsConfig adminsConfig = new AdminsConfig(new AdminUser(new CaseInsensitiveString(""))); ValidationContext validationContext = mock(ValidationContext.class); assertFalse(adminsConfig.validateTree(validationContext)); assertTrue(adminsConfig.hasErrors()); assertThat(adminsConfig.errors().on("users"), is("User cannot be blank.")); }